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
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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