Autor | Zpráva | ||
---|---|---|---|
tess Profil * |
#1 · Zasláno: 6. 9. 2011, 12:03:31
Zdravím,
řeším tu checkbox ve formuláři. Formulář se zpracuje a ty položky u kterých je zaškrtnutý checkbox by se měly smazat. Jenže problém je v tom, že pokud není zaškrtnutý, tak se jak víte, vůbec neodesílá. Proto se pak při zaškrtnutí jednoho checkboxu (např. třetího) a následného mazání cyklem, smaže první položka v databázi. Jak se dá toto ošetřit? A ještě jak se vyhnout hlášení "Undefined index: smazat in ... on line 7", které samozřejmě vznikne při nezaškrtnutí žádného políčka? Děkuji <?php include("connect.php"); $auto=$_POST['auto']; $vykon=$_POST['vykon']; $rychlost=$_POST['rychlost']; $id=$_POST['id']; $checked=$_POST['smazat']; $connect=mysql_connect($dbhost,$dbuser,$dbpass) or die(mysql_error()); mysql_select_db($db); $rows=mysql_num_rows(mysql_query("select * from auta")); for ($i=0;$i<$rows;$i++) { if ($checked[$i]!=null){ mysql_query("delete from auta where id='".$id[$i]."'",$connect); } $update="update auta set auto='".$auto[$i]."',vykon='".$vykon[$i]."',rychlost='".$rychlost[$i]."' where id='".$id[$i]."'"; mysql_query($update,$connect); } mysql_close($connect); header("Location:formular.php"); exit; ?> |
||
Alphard Profil |
#2 · Zasláno: 6. 9. 2011, 12:21:28
Pojmenujte si ho s id.
name="del[$id]"
|
||
Tori Profil |
#3 · Zasláno: 6. 9. 2011, 12:22:33
tess:
Udělejte z checkboxů pole, kde indexy budou odpovídat ID v databázi: while($row = mysql_fetch_assoc($nejakydotaz)) { echo "<input type='checkbox' name='smazat[" . $row['id'] . "]' value=1>"; } |
||
tess Profil * |
#4 · Zasláno: 6. 9. 2011, 14:23:40
Alphard, Tori
Super, děkuji vám oběma za popostrčení. |
||
CZechBoY Profil |
#5 · Zasláno: 8. 9. 2011, 23:33:25 · Upravil/a: CZechBoY
místo Foru s MySQL_Query je lepší udělat jeden dotaz s
MySQL_Query("DELETE FROM xxx WHERE id IN('".Implode("','",$idecka)."') "); |
||
radas Profil * |
#6 · Zasláno: 8. 9. 2011, 23:53:49
Tori:
taky se může stat že $row['id'] nemusi byt chronologicky zasebou (1,2,3,4)..a for byl mimo rozsah idček...když už tak tak přes foreach nebo vytvařet input s vlastnimi indexy name='smazat[]' ale asi bych to dělal tak jak píše CZechBoY |
||
Tori Profil |
#7 · Zasláno: 9. 9. 2011, 00:01:31
radas:
Proč reagujete na mne, když o for vůbec nemluvím? |
||
Časová prodleva: 13 let
|
0