wie kann ich den Wert der nichtgeklickten Checkboxen herauskriegen ? Mit count($array) kann ich ja die geklickten Checkboxen zählen, aber ich möchte wissen wie das bei den nichtgeklickten aussieht, da z.B. bei der Useradministration ein Checkbox ja entfernt werden könnte, sodass dieser per DELETE FROM gelöscht wird.
nichtgeklickte Checkbox
Einklappen
X
-
Da der Wert einer nichtgeklickten checkbox nicht übertragen wird,
kannst du entweder, alles das löschen was nicht übertragen wurde (musst also wissen welche checkboxen es gibt).
oder du nimst radio-buttons, zum an und auschalten einer funktion .
Wenn du mal ein bisschen code postest, gibts vielleich noch ein paar trickreichere möglichkeiten.
gruss
rthH I L F E
GD FreeType Antialising
Gesuch PHP Entwicklungsumgebung
------------------------------------------
Der Cmabrigde rael tset, sruf whoin du wlilst
-
Ja es gibt bestimmt noch andere Möglichkeiten, aber so allgemein ist das immer schwer zu sagen. Also
Wenn du mal ein bisschen code postest.....
grus
rthH I L F E
GD FreeType Antialising
Gesuch PHP Entwicklungsumgebung
------------------------------------------
Der Cmabrigde rael tset, sruf whoin du wlilst
Kommentar
-
wenn du das formular anzeigst, in dem rechte vergeben werden können und auch wieder entzogen werden können, dann lies die rechte des betroffenen benutzers aus und markiere die entsprechende checkbox schon von anfang an, dann sollte das problem nicht auftretenIch denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Original geschrieben von mrhappiness
wenn du das formular anzeigst, in dem rechte vergeben werden können und auch wieder entzogen werden können, dann lies die rechte des betroffenen benutzers aus und markiere die entsprechende checkbox schon von anfang an, dann sollte das problem nicht auftreten
PHP-Code:if ($edit2) {
for($i=0; $i<count($catid); $i++) {
$res = mysql_query("SELECT * FROM $user_rights_tname WHERE userid='$id' AND catid='$catid[$i]'");
$num_rows = mysql_num_rows($res);
if ($num_rows == "0") { mysql_query("INSERT INTO $user_rights_tname (catid, userid) VALUES ('$catid[$i]', '$id')"); }
mysql_query("DELETE FROM $user_rights_tname WHERE userid='$id' AND catid!='$catid[$i]'");
}
echo "Benutzer editiert.";
} else {
echo "<table width='100%' border='0' cellpadding='3' cellspacing='1'>
<form action='?action=admin&edit=users&id=$id' method='post'>
<tr bgcolor='$tcolor3'><td width='30%' align='center'>Rights:</td><td width='70%'>";
$catnames = mysql_query("SELECT * FROM $user_cat_tname ORDER BY id");
$rights = mysql_query("SELECT * FROM $user_rights_tname WHERE userid='$id'");
$num_rows = mysql_num_rows($rights);
while ($row = mysql_fetch_array($rights)) { $rights_arr[] = "$row[catid]"; }
while ($cat = mysql_fetch_array($catnames)) {
if ($num_rows != "0") { if (in_array($cat[id], $rights_arr)) { $checked = " checked"; } }
echo "<input type='checkbox' class='checkbox' value='$cat[id]' name='catid[]'$checked> $cat[name] "; $checked = ""; }
echo "</td></tr>
<tr><td> </td><td>
<input name='edit2' type='submit' value='edit user'> <input name='reset' type='reset' value='reset'>
</tr></td>
</form></table>"; }
Kommentar
-
wenn du in dem array, das du auswertest alle checkboxen drin hast, die ausgewählt wurden, dann nimm dem user doch alle rechte und geb ihm danach die, die per checkbox angegeben wurden
da wo du die rechte zuwesit (hab ich grad gesehen) steht ein delete drin, mach das vor die schleife und zwar soCode:DELETE FROM $user_rights_tname WHERE userid='$id'
Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Original geschrieben von jOhnny knOx
Ah, das ist 'ne gute Idee, danke.
Original geschrieben von RobertTheHero
Da der Wert einer nichtgeklickten checkbox nicht übertragen wird,
kannst du entweder, alles das löschen was nicht übertragen wurde (musst also wissen welche checkboxen es gibt).INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
Kommentar