Eintrag auch nach Refresh beibehalten

Every_b

Mitglied
Guten Morgen Kollegen :)

Ich die vierte.. ^^ Ich hoffe in der Section PHP bin ich mit meinen Problem am korrektesten :-/
Nun habe ich ein paar Denkblockaden bei folgendem:

Ich habe eine Checkbox - einfach eine Chekbox, wenn man sie anklickt, submitted das Form.
Soweit ist da alles okay, wenn ich den Haken setze, refreshed die Seite und ich hab den hacken, wenn ich wieder draufclicke, verschwindet er wieder - das passt alles.

Ich habe eine Tabelle angelegt, die einfach nur yesno heißt, in der drin steht "checked" oder "unchecked".
Sobald ich aber in irgendeiner Weise die Seite aktualisiere, verschwindet der Hacken (sprich: der Eintrag wird unchecked)

(Der Sinn dieser Checkbox: Wenn Eintrag in der DB checked, soll er auf der Ausgabeseite eine Schleife abspielen. Wenn nich, mach nix ^^)

Das Form sieht so aus:
HTML:
<form method="post" name="vorpremiereyesno" action="<? $PHP_SELF; ?>">
<b>Schleife:</b>&nbsp;<input type="checkbox" name="yesno" value="<? echo $yesno2[0]; ?>" onclick="document.vorpremiereyesno.submit();return false;" <? echo $yesno2[0]; ?>>
</form>

Kurze Erklärung:
Er liest bei echo $yesno[0] den Inhalt aus der Tabelle aus, also entweder "checked" oder "unchecked" - bei dem onclick, wird das Form submitted. und das letzte echo, ist nochmal "checked" oder "unchecked" - um den Hacken, je nach Tabelleninhalt zu setzen oder nicht.

Der Query so:
PHP:
if (!$yesno == "checked") {
MYSQL_QUERY( "UPDATE `yesno` SET `yesno` = 'unchecked'") OR die("<hr>Fehler bei Update : ".mysql_errno()."->".mysql_error()."<hr>");
}
else {
MYSQL_QUERY( "UPDATE `yesno` SET `yesno` = 'checked'") OR die("<hr>Fehler bei Update : ".mysql_errno()."->".mysql_error()."<hr>");
}

Ich denke mal der Query ist selbsterklärend :)
Ich hoffe irgendjemand konnte mir folgen, ich hab meiner Meinung nach eine zu komplizierte Denkweise ^^ aber vielleicht gibt es ja Leute die verstehen was ich meine und möchte :)

Würde mich um Hilfe sehr freuen!
Gruß, Dariy
 
Ähm, ich habe dein Problem nicht ganz verstanden.
Willst du dass die checkbox nach dem Aktualisieren immer noch gecheckt ist? Dann setzt einfach ein checked dahinder, also <input type="checkbox" name="bla" ... checked>

Sonst kp was du meinst, und Haken schreibt man ohne c^^
 
Gut, klamüsern wir das mal auseinander:
Beim Form-Submit soll der Checked-Wert in der DB gespeichert werden,und bei neuem Aufruf soll die checkbox den Status checked haben, wenn der Wert in der DB sodrin steht ... dazu musst du einfach nur "checked" (OHNE Anführungszeichen) in dem Input-Tag setzen, wenn der Wert "checked" ist,ansonsten eben nix.

Dein Formular stimmt also so, wie Du das getippselt hast - Woist nun Dein Problem ?
 
Ich denke er meint das danach noch der Haken gesetzt ist. Das ist eigentlich keine PHP Geschichte sondern HTML. Aber im Endeffekt musst Du nur den Datenbankwert abfragen und dann in das HTML Element "checked" setzen. Mit einer Sessionvariable wäre dies auch möglich.

Btw. zum Thema Optimierung
Du sparst Dir ne Menge Speicherplatz wenn Du boolsche Werte nicht als Textfeld in der Datenbank speicherst. Die Checkbox kann nur 2 Zustände haben. 0 oder 1, true oder false. "checked" und "unchecked" verbraucht mehr Speicherplatz.
 
Zurück