Checkboxen checked="checked" nach dem Senden merken

Fiberman

Mitglied
Hallo Forum,

ich habe mehrere Checkboxen, die aktiviert oder nicht aktiviert sein können.
Die Checkboxen haben verschiedene values, damit ich diese später weiter verarbeiten kann.

Nach dem Absenden im Formular kann es sein, dass Felder nicht ausgefüllt wurden und dann die Fehlermeldung angezeigt wird.
Nach der Fehlermeldung merkt sich der Browser nicht, ob Checkboxen angehakt oder nicht waren. Wie kann ich dieses ändern?

Folgendes funktioniert nicht:
PHP:
<div><input type="checkbox" name="bestellung[]" value="Teil 1"  <?php if ($_REQUEST["bestellung"] == "Teil 1") { echo "checked="checked"";} ?> ></div>
<div><input type="checkbox" name="bestellung[]" value="Teil 2" <?php if ($_REQUEST["bestellung"] == "Teil 2") { echo "checked="checked"";} ?>></div>
<div><input type="checkbox" name="bestellung[]" value="Teil 3" <?php if ($_REQUEST["bestellung"] == "Teil 3") { echo "checked="checked"";} ?>></div>
<div><input type="checkbox" name="bestellung[]" value="Teil 4" <?php if ($_REQUEST["bestellung"] == "Teil 4") { echo "checked="checked"";} ?>></div>

Vielen Dank für euere Hilfe
Gruß Fiberman
 
Ich komme selber nicht drauf wie man das "Checkbox"-Array noch anders abfragen kann, aber so geht es auch:

PHP:
<div><input type="checkbox" name="bestellung[]" value="Teil 1"  <?php if (@in_array("Teil 1", $_REQUEST["bestellung"])) { echo 'checked="checked"';} ?> ></div>
<div><input type="checkbox" name="bestellung[]" value="Teil 2" <?php if (@in_array("Teil 2", $_REQUEST["bestellung"])) { echo 'checked="checked"';} ?>></div>
<div><input type="checkbox" name="bestellung[]" value="Teil 3" <?php if (@in_array("Teil 3", $_REQUEST["bestellung"])) { echo 'checked="checked"';} ?>></div>
<div><input type="checkbox" name="bestellung[]" value="Teil 4" <?php if (@in_array("Teil 4", $_REQUEST["bestellung"])) { echo 'checked="checked"';} ?>></div>
 
PHP:
echo "checked="checked"";
Das geht so nicht die "" nach dem 2ten " ist der String zuende. Du has folgende möglichkeiten
PHP:
echo 'checked="checked"';
echo "checked=\"checked\""';

Zudem die Array-Abfrage wie tombe schon schrieb
 
Vielen Dank,

genau das war es! Als ich es mit in_array probiert hatte (allerdings ohne @) ging es nicht. Da hatte ich wahrscheinlich ein [ ] zuviel.

Gruß Fiberman
 
Ohne @ gehts nicht? Was für eine Fehlermeldung?
@ unterdrückt fehler. Sollte eigentlich nicht gebraucht werden wenn alles richtig funktioniert
 
PHP:
echo "checked="checked"";
Das geht so nicht die "" nach dem 2ten " ist der String zuende. Du has folgende möglichkeiten
PHP:
echo 'checked="checked"';
echo "checked=\"checked\""';

Zudem die Array-Abfrage wie tombe schon schrieb

da hab ich beim abtippen die \" vergessen.

Jetzt funktioniert es wie es soll.

Gruß Fiberman
 
Ohne @ gehts nicht? Was für eine Fehlermeldung?
@ unterdrückt fehler. Sollte eigentlich nicht gebraucht werden wenn alles richtig funktioniert

@yaslaw:
Ich habe in meinem Beispiel das "@" benützt weil ich beim ersten Aufruf der Seite nicht prüfe ob die $_REQUEST Variablen überhaupt existieren. In diesem Fall wird ohne "@" eine Fehlermeldung ausgegeben.
 
@yaslaw:
Ich habe in meinem Beispiel das "@" benützt weil ich beim ersten Aufruf der Seite nicht prüfe ob die $_REQUEST Variablen überhaupt existieren. In diesem Fall wird ohne "@" eine Fehlermeldung ausgegeben.

Danke für den Nachsatz, das gleiche hab ich mir auch gerade ergoogelt und wollte es hier posten.

Gruß Fiberman
 
Zurück