22. august 2008 - 16:23
Der er
19 kommentarer og 1 løsning
Hvordan updater jeg med checkboxes
Jeg kan aldrig huske den her... har en kode der hiver navne frem fra databasen. Deres user_lvl er styret ved 7 områder; ---------------- $query = mysql_query("select * FROM `wow_users` WHERE `guild` != '0' ORDER BY `ID` DESC") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo " <tr> <td><span class=\"text1\">".$row["user"]."</span></td> <td><span class=\"$row[type]\">".$row["type"]."</span></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_1] > "0") { echo " checked=\"checked\""; } echo "></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_2] > "0") { echo " checked=\"checked\""; } echo "></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_3] > "0") { echo " checked=\"checked\""; } echo "></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_4] > "0") { echo " checked=\"checked\""; } echo "></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_5] > "0") { echo " checked=\"checked\""; } echo "></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_6] > "0") { echo " checked=\"checked\""; } echo "></td> <td><input type=\"checkbox\" name=\"check[".$row["ID"]."]\" value=\"1\" "; if($row[ar_7] > "0") { echo " checked=\"checked\""; } echo "></td> </tr>"; } --------------- Hvordan er det nu jeg for lavet en update som tar højde fra det hele... er ret sikker på checkboxen heller ikke er helt rigtig...
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
22. august 2008 - 16:54
#1
Det kommer meget an på hvad du rent faktisk vil opnå ?
22. august 2008 - 17:26
#2
Jeg vil bare havde den til at retter ar_1 -> ar_7 på hver bruger der bliver hevet ud i while lykken alt efter om man har hakket checkboxen af eller ej 0 hvis ikke og 1 hvis man har
22. august 2008 - 17:42
#3
Virker dit udtræk fint nok ? For du skal jo så løbe $_POST['check'] igennem. Det kan du gøre med: foreach($_POST['check'] AS $id => $checkboxes){ //Gør noget med $id (bruger ID) //$checkboxes de 7 checkboxene til brugeren... }
23. august 2008 - 16:42
#4
jakobdo> tror du at du kan specificere koden en smule mere? Jeg er ikek helt med på hvordan jeg for den til at opdatere hver tabel for hver bruger... der er 7 felter ar_1 -> ar_7
23. august 2008 - 16:47
#5
Jeg går ud fra mine checkboxes også skal se sådan her ud? ---------- <tr> <td><span class="text1"><? echo "$row[user]"; ?></span></td> <td><span class="<? echo "$row[type]"; ?>"><? echo "$row[type]"; ?></span></td> <td><input type="checkbox" name="ar_1" value="1" <? if($row[ar_1] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="ar_2" value="1" <? if($row[ar_2] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="ar_3" value="1" <? if($row[ar_3] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="ar_4" value="1" <? if($row[ar_4] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="ar_5" value="1" <? if($row[ar_5] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="ar_6" value="1" <? if($row[ar_6] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="ar_7" value="1" <? if($row[ar_7] > "0") { echo " checked=\"checked\""; } ?>></td> </tr>
23. august 2008 - 16:55
#6
Jeg ville nok give dem navn ala: name="check[$row['user_id']]['ar_1']" name="check[$row['user_id']]['ar_2']" osv...
23. august 2008 - 17:34
#7
super... og nogen idé til hvordan min update så skulle se ud?
23. august 2008 - 17:34
#8
if(isset($_POST["check"]) && is_array($_POST["check"])) { foreach($_POST['check'] AS $id => $checkboxes){ mysql_query("UPDATE `wow_users` SET ?????) or die(mysql_error()); } }
23. august 2008 - 20:52
#9
Det kommer jo selvfølgelig an på hvordan din tabel struktur er nu. :o)
23. august 2008 - 23:38
#10
jamen der er en bruger med et unikt ID og han har så ar_1 -> ar_7
24. august 2008 - 13:55
#11
ar_1, ar_2 osv... Er de i en og samme tabel ? Og så angiver du true eller false, 0/1 eller lign. for om checkboxen er sat eller ej ?
24. august 2008 - 19:35
#12
id | ar_1 | ar_2 | osv... ------------------------- 1 0 0 ------------------------- 2 1 0 ------------------------- 3 0 1 men kan ikke forstå hvordan jeg skal lave den tjeck om den er hakket af eller ej og at den så opdatere mysql'en
24. august 2008 - 20:58
#13
prøv lige at lav: echo '<pre>'; print_r($_POST); echo '</pre>'; og se hvad du får, når du forsøger at opdatere.
24. august 2008 - 22:14
#14
Array ( [check] => Array ( [0] => Array ( [ar_1] => 1 ) [1] => Array ( [ar_2] => 1 ) [2] => Array ( [ar_3] => 1 ) [3] => Array ( [ar_4] => 1 ) [4] => Array ( [ar_5] => 1 ) [5] => Array ( [ar_6] => 1 ) [6] => Array ( [ar_7] => 1 ) ) )
24. august 2008 - 22:14
#15
Med; $query = mysql_query("select * FROM `wow_users` WHERE `guild` != '0' ORDER BY `user` DESC") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { ?> <tr> <td><span class="text1"><? echo "$row[user]"; ?></span></td> <td><span class="<? echo "$row[type]"; ?>"><? echo "$row[type]"; ?></span></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_1]"; ?>" value="1" <? if($row[ar_1] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_2]"; ?>" value="1" <? if($row[ar_2] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_3]"; ?>" value="1" <? if($row[ar_3] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_4]"; ?>" value="1" <? if($row[ar_4] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_5]"; ?>" value="1" <? if($row[ar_5] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_6]"; ?>" value="1" <? if($row[ar_6] > "0") { echo " checked=\"checked\""; } ?>></td> <td><input type="checkbox" name="<? echo "check[$row[user_id]][ar_7]"; ?>" value="1" <? if($row[ar_7] > "0") { echo " checked=\"checked\""; } ?>></td> </tr> <? } ?>
24. august 2008 - 23:10
#16
ah der var jo en fejl id'et er jo "ID" og ikke "User_ID"... Array ( [check] => Array ( [4] => Array ( [ar_1] => 1 [ar_2] => 1 [ar_3] => 1 [ar_4] => 1 [ar_5] => 1 [ar_6] => 1 [ar_7] => 1 ) ) )
25. august 2008 - 08:09
#17
Så burde følgende gøre det: i(isset($_POST["check"]) && is_array($_POST["check"])) { foreach($_POST['check'] AS $id => $checkboxes){ mysql_query("UPDATE `wow_users` SET ar_1 = '".mysql_real_escape_string($checkboxes['ar_1'])."', ar_2 = '".mysql_real_escape_string($checkboxes['ar_2'])."', ar_3 = '".mysql_real_escape_string($checkboxes['ar_3'])."', ar_4 = '".mysql_real_escape_string($checkboxes['ar_4'])."', ar_5 = '".mysql_real_escape_string($checkboxes['ar_5'])."', ar_6 = '".mysql_real_escape_string($checkboxes['ar_6'])."', ar_7 = '".mysql_real_escape_string($checkboxes['ar_7'])."' WHERE user_id = '".intval($id)."' LIMIT 1") or die(mysql_error()); } }
25. august 2008 - 12:48
#18
Virker perfekt jakobdo - smid et svar tak :)
25. august 2008 - 12:55
#19
Svar!
25. august 2008 - 13:54
#20
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling