Diskuze: HTML formulár - atribút name
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,
V tom cyklu zapiš ten checkbox takto
<input type="checkbox" name="delete[]" value="$id" >
$id, protože každá hodnota musí byt jedinečná.
Potom ti po odeslání v POSTu přijde (pokud uživatel něco zaškrtl) pole s
ids záznamu, které máš smazat.
$POST['delete'] = [
0 => 4,
1 => 7,
2 => 16,
]
tzn. v tomto případě smažeš obrázky s ID 4,7,16,
Jinak používáš deprecated ovladače mysql a neošetřuješ dotazy!
$POST['delete'] = [
0 => 4,
1 => 7,
2 => 16,
] neviem či som tomu správne porozmuel ale takéto hodnoty by som mal v poste
keby som zaklikol checkboxy s idčko 4,7 a 16 ? Po pravde neviem ani, že čo
myslíš pod tým, že neošetrujem dotazy, mám za sebou jednu asi 200
stranovú knihu a snažím sa nejako poskladať dokopy fotogalériu, ako
semestrálnu prácu a po pravde pri písaní sa to vlastne aj učím ako to
funguje
nerozumiem, že ako mám k tomu cez ten POST pristupovať v tom poli, doteraz
som to robil nejako takto...
mám nejakým spôsbom napísať, že if($_POST['delete'][$i] == 'on') {
unlink($_POST['delete'][$i] );
} ?
ano, chceckboxy mají atribut name="delete[]" a
value , ve kterém bude ID obrázku z databáze.
Zaškrtneš chceckboxy s value například 4, 7 a 16 a odešleš to. V $_POSTu
ti pak příjde to pole co jsem psal ...
To pole pak projedeš cyklem:
if (isset($_POST['delete']))
{
foreach ($_POST['delete'] as $id)
{
// v $id bude postupně 4 , 7 , 16
/* DELETE FROM fotky WHERE id = $id; */
/* smažeš obrázek z adresáře. */
}
}
Jinak ta kniha u bude asi pěkně stará
používáš ovladač mysql - vídíš, že i PHPStorm ti to škrtá, protože
už je ten ovladač označen jako deprecated (v další verzi PHP bude
odstraněn), doporučuji nahradit za mysqli, lépe PDO.
Při práci s databázi (vkládání, mazání záznamů ...) by se mělo
použít prepared statements.
Vše okolo toho najdeš na internetu, i v oficiální dokumentaci PHP
Jen pro budoucí bezpečnost doplním, že i přes to, že jsou ty hodnoty v checkboxech jako čísla, v tom SQL dotazu si ty hodnoty na číslo přetypuj (uživatel si je může upravit).
Zobrazeno 6 zpráv z 6.