Problem mit änderung in der mysql per checkbox

bernhardp

Mitglied
Ich hab ein fertigees scrip umgebaut, sodas ich meine checkbox ändern kann und er es ordnungsgemäß mit code2 in die mysql übernimmt. allerding funktioniert nur das setzen des hackens.... ein wieder entfernen ist mit dem script nicht möglich.... was muss ich bei code2 ändern damit er mir ein gesetztes und ein nicht gesetztes häcken übergibt?

PS: code2 ist in einer schleife und daher "$db[userID]" in jeder zeile anders...

code1:
PHP:
<input type="checkbox" class="input" name="userID[]" value="'.$db[userID].'" checked>

code2:
PHP:
	if(is_array($userID)) {
		foreach($userID as $id) {
			safe_query("UPDATE ".PREFIX."team_members SET admin='1' WHERE userID='$id'");
		}
	}
 
So?
PHP:
if (is_array($_POST['userID'])) {
    for ($i=0;$i<=count($_POST['userID'])-1;$i++) {
        safe_query("UPDATE ".PREFIX."team_members SET admin='1' WHERE userID='".$_POST['userID'][$i]."'");
    }
}

bernhardp hat gesagt.:
Ich hab ein fertigees scrip umgebaut, sodas ich meine checkbox ändern kann und er es ordnungsgemäß mit code2 in die mysql übernimmt. allerding funktioniert nur das setzen des hackens.... ein wieder entfernen ist mit dem script nicht möglich.... was muss ich bei code2 ändern damit er mir ein gesetztes und ein nicht gesetztes häcken übergibt?

PS: code2 ist in einer schleife und daher "$db[userID]" in jeder zeile anders...

code1:
PHP:
<input type="checkbox" class="input" name="userID[]" value="'.$db[userID].'" checked>

code2:
PHP:
	if(is_array($userID)) {
		foreach($userID as $id) {
			safe_query("UPDATE ".PREFIX."team_members SET admin='1' WHERE userID='$id'");
		}
	}
 
Also der code funktioniert zwar... aber ganz gleich wie der bestehende! die checkbox wird gesetzt und wird bei änderung nicht als ungestzt gespeichert.

ich müsste im prinzipp nur die variable wissen, die den aktuelle zustand der checkbox übergibt. diese würde ich dann nur statt $variable einsetzte. sollte auch funktionieren...

PHP:
if(is_array($userID)) { 
        foreach($userID as $id) { 
            safe_query("UPDATE ".PREFIX."team_members SET admin='$variable' WHERE userID='$id'"); 
        } 
    }
 
Checkboxen und Radiobuttons werden überhaupt nicht übergeben wenn sie nicht markiert sind.

Lösungen:
Vor der Checkbox ein Hidden Field mit value="0"
oder Du setzt auf der Zielseite erst die Variable auf 0 und dann per $_POST('var') aufden Wert, falls checked.
 
Lösungen:
Vor der Checkbox ein Hidden Field mit value="0"

was bringt das das übergibt mir dann doch keine änderung and die datenbank....
und "$_POST('var')" sagt mir leider auch garnichts...

ich möchte das der update-button die änderungen der Admin-checkbox's an die db übergibt.... wie gesagt... ich schaffs nur das anhacken zu erkennen... deaktivieren ist nicht.... was muss ich ändern damit er das auch übernimmt?

PS: im anhang findet ihr nen tabellen screenshot....
 

Anhänge

  • checkbox_db.JPG
    checkbox_db.JPG
    8,6 KB · Aufrufe: 46
So... Leute ... brauch dringent ne lösung... wer kann mir helfen?

php erstellt aus der DB eine liste von useren die adminrechte haben oder nicht

PHP:
<input type="checkbox" class="input" name="2" value="" checked>
<input type="checkbox" class="input" name="5" value="" checked>
<input type="checkbox" class="input" name="11" value="">

in "name" steht die $userID in dessen zeile in der DB ich die spalte "admin" auf dem entsprechenden zustand der checkbox'n updaten will.... nur wie geh ich das an?

PHP:
<input type="submit" name="update" value="update">
 
Checkboxes, die keinen Haken haben, werden dir vom Browser normalerweise nicht übergeben. D.h. alle nicht übergebenen Checkboxes wurden nicht angeklickt.
 
Zurück