Checked im Dynamischen Formular

Hallo und einen schönen Freitag,

ich habe mir ein dynamisches Formular erstellt.
Zu 90 % funktioniert dieses auch.
Haken bei der Liste mit den Checkboxen setzen , drei andere Felder (name, vorname , mail) ausfüllen abschicken.
Beim senden wird das Formular geprüft ob Name, Vorname, Mail und mindestens ein Haken gesetzt sind.

Wird nun ein Feld vergessen, kommt eine Fehlermeldung und alle Checkboxen sind wieder leer.
nur wie bekomme ich es hin, dass die Checkbox gesetzt bleibt?

Danke für die Hilfe

Guckstdu

while ($row_bereiche = mysql_fetch_assoc($bereiche))	{ 

	$formsg.=sprintf("<li class=\"%s\"><input type=\"checkbox\" name=\"bereiche[]\" value=\"%s@%s@%s@%s\" %s/>\n%s-%s</li>",$bg,$row_bereiche['code'],$row_bereiche['name'],$bez,$bezFremd,$bez,$bezFremd);

}

Das hat wenig mit PHP zu tun.
Bei dem entsprechenden Formularelement fügst du einfach das
Attribut checked=“checked” hinzu (bei HTML kann man den Wert
auch weglassen, ist aber auch dort eher schlechter Stil).

Hallo,

das habe ich eigentlich gemacht

dann ist aber alles beim aufrufen der seite selektiert ?

Danke
GD

Affenformular

Hallo,

ich bekomme das zwar statisch hin, also jeder wert einzeln, aber nicht in der Schleife.

:frowning:

Danke GD

„Ich bekomm’s nicht hin“ reicht höchstens aus, wenn du unser Mitleid haben willst.

Wenn du hingegen ein Problem beschreiben und unsere Mithilfe bei der Lösung haben willst - dann beschreibe uns bitte, was du versucht hast, was du dir dabei gedacht hast, und in wie fern das erzielte Ergebnis vom erwarteten abweicht.

Kurz: Verfasse eine sinnvolle Problembeschreibung.

Ok,

dass ist so
ich bekomme das bei einem statischen Formular hin, nicht wenn ich die daten aus der Tabelle auslese dann packe ich es einfach nicht, ich habe keinen Plan wie ich das machen sollte.

So rein statisch klappt das. $error ist aktiv, wenn Felder nicht gefüllt wurden.

<input type="checkbox" name="test" value="titel" <?php if(isset($error) and $_POST['test'] == "titel") {echo "checked";} ?> />

im dynamischen Formular habe ich es so versucht.

$vergleich = $row_bereich['code']."@".$row_bereich['name']."@".$bez."@".$bezFremd; $ch=""; if(isset($error) and $_POST['bereiche'] == $vergleich) {$ch= "checked";} $formsg.=sprintf("<li class=\"%s\">&nbsp;<input type=\"checkbox\" name=\"ausw_eb[]\" value=\"%s@%s@%s@%s\" %s />\n%s&nbsp;&nbsp;-&nbsp;%s</li>",$bg,$row_bereich['code'],$row_bereich['name'],$bez,$bezFremd,$ch,$bez,$bezFremd); } ;

Soweit
Danke
GD

Wenn ichs richtig überlesen habe willst du nur die Formulareingaben temporär speichern / mitschleifen damit im Fehlerfalle der Benutzer nicht alles neu eingeben muss.
Werte einfach die post-Daten aus und setze sie wieder ein und verwende notfalls eine session.

Hi,

es wäre vielleicht einfacher die Eingabefelder VOR dem Absenden des Formulars mittels javascript zu prüfen, dann hast du das Problem mit dem erneuten Setzen nicht.
GuckstDu hier
de.selfhtml.org/javascript/beisp … ngaben.htm

:slight_smile:

mfg
lemming

Nicht jeder hat javascript aktiviert.

Das ist nicht mal das Problem… Browserseitige-checks sind dazu auch noch unsicher.
z.B. wenn ein Feld nur Buchstaben beinhalten darf, die E-Mail gültig sein muss oder aber das Datum stimmen soll, könnte jemand der die Post Daten manipuliert bzw. direkt schickt alle Checs die via JS gemacht wären einfach umgehen und schlimmstenfalls nen Exploid ausnutzen.

Außerdem ists nen Leichtes nen Formular mit Daten zu füllen^^
Ich brauchte i.d.R. nur 1x das Formular zu erstellen in welches dann (falls vorhanden) die alten Werte reinkommen.

Ich meine, im Rahmen des Entwurfes für HTML5 sind ähnliche
Kontrollmöglichkeiten gleich ohne Skript vorgesehen.
Die Idee ist dabei eher, dem Nutzer zu helfen, versehentliche
Fehler zu beheben, nicht das Unterbinden von bösartigen Angriffen.

Ich habe auch schon drollige Formulare gesehen, die sich (ohne
Skriptinterpretation) gar nicht abschicken ließen, das löst natürlich
Frustrationen beim Nutzer aus (etwa erinnere ich mich da an ein
Rückmeldeformular von ASUS über den Kundendienst - man kann
sich denken, wie da die Rückmeldung - wenn überhaupt - ausfällt,
wenn das Formular nicht funktioniert oder der Ausfüller schikaniert
wird, wenn das Skript besser zu meinen weiß, was notwendig oder
richtig ist). Oft übersieht der Formular/Skriptersteller mögliche
Alternativen und verhindert so das Abschicken von Informationen,
die aus der Sicht des Abschickenden korrekt sind. Man muß da also
sehr vorsichtig sein, wenn man Nutzereingaben prüft, um zu
verhindern, daß die Prüfung ein sinnvolles Ergebnis sabotiert oder
den Nutzer frustriert.
Das ist auch eine große Gefahr bei dem Affenformular - ist es
schlecht gemacht, schließt es eben nicht nur Affen aus, sondern
wohlmögliche auch viele sinnvolle Möglichkeiten, die bei der
Erstellung des Skriptes übersehen wurden. Und da Menschen meist
deutlich weniger geduldig als Roboter (oder Affen) sind,
durchschauen die recht schnell, daß das Problem beim
Skriptersteller liegt und suchen kopfschüttelnd ziemlich schnell das
Weite…

ich habe es aufgegeben :frowning:

ich bin der meinung, dass jeder, der javascript deaktiviert hat, auch weiß was das für den praxistauglichen umgang mit aktuellen internetseiten bedeutet - und es auch wieder aktivieren kann. das ist natürlich ansichtssache und allgemein sollte man (mach ich auch) eingaben serverseitig prüfen, aber ich persönlich habs satt, dann dürfte man nämlich überhaupt kein javascript verwenden. ebenso wie flash etc.