Formularüberprüfung

Hallo,

ich habe ein Formular, daß aus einer Tabelle generiert wird. Es enthält ausschließlich Radiobuttons und einen Submit Button. Wie stelle ich fest, ob tatsächlich alle Radiobuttongroups einen Wert haben, also alle Fragen beantwortet worden sind ?

Danke im voraus !

Daniel

hi,
verstehe ich das problem nicht?
jede ‚radiobuttongroup‘ hat doch einen gemeinsamen namen mit unterschiedlichen werten.
frag diese namen einfach ab.


if (!isset($name1) && !isset($name2) ) {
//ruf das formularscript hier nochmal auf, weil es wurde irgendwas nicht ausgefuellt
}

es gibt natuerlich noch andere moeglichkeiten.
falls du einen defaultwert hast, wirst du aber schwierigkeiten haben, ob der user genau der meinung war, oder diese frage ausgelassen hat.

mfg, stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo !

Ich meine das so : Ich habe meine Daten schon abgeschickt. Danach habe ich natürlich nicht mehr die einzelenen Variabenbezeichner als Variablen, sondern nur noch im HTTP_POST_VARS Array. Außerdem sind es immer unterschiedlich viele Radiogroups, weil das Formular dynamisch aus einer Tabelle generiert wird. Ich will einfach nachdem es abgeschickt wurde überprüfen, ob alle Radiogroups einen Wert erhalten haben (es gibt keine Defaultwerte) und falls nicht, noch mal zurück auf das Formular linken…

ich hoffe, ich habe das Problem schildern können

Daniel

hi daniel,
also, nochmal von vorne:

php hat die eigenart, dass variablennamen, die in einem formular oder ueber die url an das skript geschickt werden, direkt ueber den namen ansprechbar sind. du brauchst nicht wie etwa bei perl den HTTP_POST_VARS-string zerlegen.

die irgendwas.html ist dein formular mit zwei radiogroups. und zwar ‚essen‘ und ‚trinken‘. (du solltest wie gewohnt die eckigen gegen spitze klammern tauschen).

–irgendwas.html-----

...
[form method=post action=auswerter.php]
[input type=radio name=trinken value="kaffee"]kaffee[br]
[input type=radio name=trinken value="tee"]tee[br]
[input type=radio name=essen value="brot"]brot[br]
[input type=radio name=essen value="kekse"]kekse[br]
[input type=submit value="abschicken"]
[/form]
...

wenn du nun den submitbutton drueckst, werden die werte an die ‚auswerter.php‘ per ‚post‘-methode geschickt.

–auswerter.php------

//...
if (!isset($trinken) || !isset($essen) {
// eins der radios wurde nicht bedient!
 include("irgendwas.html");
 exit;
}

echo "
essen: " . $essen;
echo "
trinken: " . $trinken;
exit;

wenn weder $trinken noch $essen einen wert haben, wird das formular nochmals gezeigt. ansonsten bekommst du deine angeklickten werte als ausgabe im browser.

das sollte die sache eigentlich erklaeren.

gruss, stefan

ich nochmal,
jetzt habe ich deine frage auch richtig verstanden…

du weisst also gar nicht, wie deine variablen heissen? das ist aber dumm…

um beim untigen beispiel zu bleiben, dein HTTP_POST_VARS-string sieht also folgendemassen aus:

essen=kekse&trinken=kaffee

radiogroups, die nicht gesetzt sind, werden auch nicht mit uebergeben. falls also trinken nicht gesetzt ist, sieht der string so aus:

essen=kekse

jetzt musst du dabei gehen, und das teil zerlegen:

$temp = explode ('&', $HTTP\_POST\_VARS);
// $temp ist jetzt ein array, dass zwei wertpaare enthaelt

$anzahl = sizeof($temp);
// jetzt weisst du, wieviele elemente du hast.
 
for ($i=0 ; $itrinken: " . $postvars['trinken'];
echo "
essen: " . $postvars['essen'];

exit;

gruss, stefan