Wiederherstellung der Auswahl (Radio-Buttons)

das_element

Erfahrenes Mitglied
Hallo.
Habe hier folgendes Problem: Ich habe ein Kontaktformular, mit Radio-Buttons (und anderem...) und hab das Script bisher so geschrieben, dass die Daten nach einem Klick auf Absenden noch einmal überprüft werden und evtl. nochmal geändert werden können.
Nun habe ich bei den Radio-Buttons das Problem, dass ich nicht weiß, dass ich den vorher ausgewählten Button "checked" machen kann, bei den Textfeldern habe ich es über
PHP:
value ="<?php echo $_POST['email'];?>"
im input-Tag gelöst.

Hoffe auf eure Antworten.
Gruß, Stefan.
 
Also ich löse das wie folgt.

Wenn ich eine DropDown-Box mit Tagen hab:
PHP:
    echo '	<select name="tag" size="1" class="dropdown"><option selected value="">--';
	        for ($i=1; $i<32; $i++) { if($_POST['tag']==$i) { echo '<option selected value="'.$i.'">'.$i; } else { echo '<option value="'.$i.'">'.$i; } }
    echo '	</select>';

ansonsten bei zB Geschlechtsangabe so:
PHP:
    echo '	<select name="geschlecht" size="1" class="dropdown"><option selected value="">--<option '; if($_POST['geschlecht']=="männlich") { echo 'selected '; } echo 'value="männlich">männlich<option '; if($_POST['geschlecht']=="weiblich") { echo 'selected '; } echo 'value="weiblich">weiblich</select><br>';
 
PHP:
<form action="" method="post">
<input type="radio" name="radioButton" value="asd"<? if($_POST['radioButton'] == "asd") echo " checked"; ?>>
<input type="radio" name="radioButton" value="ads"<? if($_POST['radioButton'] == "ads") echo " checked"; ?>>
<input type="radio" name="radioButton" value="sad"<? if($_POST['radioButton'] == "sad") echo " checked"; ?>>
</form>

Lg
 
@SilverVegeto: Ich will aber Radio-Buttons ;)

@pHyro:
Da passiert nicht viel bei mir... eig. nichts? Kannst du mir den Code ein wenig erklären, nicht dass wir uns missverstehen.
 
Hi,

du kannst es alternativ mit
HTML:
 checked="checked"
im Input-Tag versuchen. Bin mir zwar nicht ganz sicher was zzt. gängig ist, bzw, w3c-valide aber einen versuch ist es wert.

Mal an alle: Weiß jemand wo genau der unterhschied liegt, bzw. welche variante bessser ist?
 
@david07:
ja, dann isses aber nur vorselektiert, aber wenn ich jetz folgendes habe:

x Mann (checked="checked")
o Frau (unchecked, also normal)
<-- so habe ich es ja schon vorausgewählt,

aber wenn jemand jetzt Frau ist, und das Formular absendet, dann kommt nach der Überprüfung wieder
x Mann
o Frau

Und ich will doch, dass wenn jemand Frau ist, dass nach dem Überprüfen immernoch checked ist.

Oh Gott... war das verständlich, wenn nicht, versuch ichs nochmal ;)
 
@das_element

So ganz sicher bin ich nicht ob ich dich richtig verstehe. Aber eigentlich funktioniert es mit checked oder checked="checked". (so wie phyro es schon gesat hat).

Wenn die vorselektierung "plötzlich verschwindet" würde ich mal prüfen ob alle variablen richtig übergeben sind, bzw. ob die variablennamen alle stimmen. Ich weiß ja nicht in wiviel schritten dein formular aufgebaut ist. Prüfe auf jedenfall mal ob alle variablen immer schön weitergegeben werden. Andernfalls ist es such sinnvoll bei formularen die über mehrere schritte ausgefüllt werden die daten in einer session zwischenzuspeichern.

Aber wiegesagt so ganz sicher bin ich nicht was genau du meinst ;)
 
Hab mir phyros Idee nochmal angeschaut und jetz verstanden. War gestern wohl schon zu müde :D

Danke an alle.

EDIT:
Habe gemerkt, dass jetzt doch noch ein Problem auftritt:
Hab nämlich ein Textfeld mittels textarea-Tag generiert und die Übertragung der eingetragenen Daten funktioniert auch. Nur kommt hier wieder das selbe Problem, wie oben:
Der Inhalt wird nach dem Checken/Absenden nicht wieder im Feld angezeigt, sondern verschwindet.
Liegt wohl daran, dass nicht input, sondern textarea verwendet wird. Aber was kann ich hier machen?

Hab im Moment folgende Lösung (die nicht funktionert):
<textarea name="comment" value="<?php echo $_POST['comment'];?>" cols="30" rows="5"></textarea>
 
Zuletzt bearbeitet:
Zurück