Checkbox soll checked bleiben, bei Formularüberprüfung.

...komplette Frage anzeigen

4 Antworten

Das Formular wird per POST abgeschickt, also hast Du in PHP für den POST Parameter "checkbox" einen Wert, wie auch für alle anderen Parameter. Ist dieser gesetzt, setzt Du ihn über das "checked" Attribut beim ausliefern des Formulars erneut (checked="checked"). Dein Markup ist übrigens nicht valide, das solltest Du durch den Validator jagen und die Fehler beheben. Auch werden bei mir Deine Sonderzeichen falsch angezeigt. Ich vermute, Du setzt die Informationen zum Zeichensatz falsch.

Kann man so machen:

<?php
  if (isset($_POST['datenschutz']) && ($_POST['datenschutz'] == 1))
    $checked = ' checked="checked" ';
  else
    $checked = ' ';  

?>

<form action="/index.php">
    blabla...
    <input type="checkbox"<?php echo $checked ?>name="datenschutz" value="1" />
</form>

Du Prüfst vorher ob in dem $POST der Wert für die Checkbox bereits übermittelt wurde und ob dieser auch aktiviert wurde. Dementsprechend setzt du in einer Variablen das Attribut, das die Checkbox als gecheckt darstellen lässt. Wenn der $POST für die Checkbox leer ist oder nicht angewählt wurde, bleibt das Attribut $checked leer. Zum Schluß wird die Variable als Attribut lediglich noch in der Checkbox platziert.

Gruß

regenwurm75 27.10.2012, 23:19

Ich kann die Else Anweisung nicht anwenden, da die Else Anweisung, alle übrigen Formulardaten überprüft.

Die IF checked Anweisung ist die oberste. Danach folgen alle anderen Prüfungen der Formularfelder.

Am Ende kann ich es auch nicht hinmachen, weil es sowieso, wieder dazu führt, das checked zwar true ist, aber jedesmal beim Klicken auf Registrieren zurückgesetzt wird.

Ich bin am Verzweifeln...

Ich habe eine Variable $checked erstellt.... diese beinhaltet einen Wert. Dieser Wert wird überprüft. ist ein Wert da, gehts weiter mit dem Formular, ist der Wert nicht da, wird ausgegeben das man die Checkbox aktivieren muss...

Mist PHP....

0

Im Checkbox-Tag kannst du ne Variable einbauen, die bei erfolgreicher Überprüfung mit checked="checked" oder einfach checked gefüllt wird.

Hallo,

könntest du eventuell einen Auszug aus dem PHP Quellcode posten, damit ich dir besser helfen kann?

MfG Xenira

regenwurm75 27.10.2012, 22:56

Hier mal der Teilcode, Formular und PHP:

<input type="checkbox" name="checkbox" checked="<?php   $checked;?>">Mit    dem Registrieren akzeptiere ich die <a          href="datenschutz/">Datenschutz-</a> und <a     href="company/nutzungsbedingung/">Nutzungsbedingungen</a>.</input>

if ((empty($checkbox)) and (!empty($submit))){
echo "

Bitte Datenschutz- und Nutzungsbedingungen akzeptieren.

"; }

else

{ $connectionid = mysqlconnect ("localhost", "", "f "); if (!mysqlselectdb ("usrweb129044_1", $connectionid)) { die ("Keine Verbindung zur Datenbank"); }

Ich weil einfach nur das die Checkbox bei einmaligen Klicken "markiert" bleibt.

0
regenwurm75 27.10.2012, 23:37
@regenwurm75

ICH HABS GELÖST!

ich habe einfach das reingesetzt:

else if (!empty ($checkbox))  

Ich übersetze auf Deutsch:

Falls Checkbox leer und auf den Button Registrieren noch nicht geklickt, dann sag: Datenschutz-Checkbox soll leer dar stehen.

Falls Button registrieren schon geklickt wurde, aber Checkbox noch nicht angeklickt, fülle Checkbox automatisch.

Falls Formular erstemal augerufen wird, soll Checkbox checked sein.

(Naja eine Frage hätte ich noch, wie mache ich das, das beim ersten Aufruf des die Checkbox leer ist) Sie wird ja nun beim ersten Aufruf immer vorerst markiert?

Funktioniert alles perfekt!

Danke für Denkanstöße!

Danke für Antworten auf meine letzte Frage!

0

Was möchtest Du wissen?