<input type radio Übergabe in PHP klappt nicht
Hansimglück
- html
- php
0 Gunnar Bittersmann0 pl0 Rolf B
Hallo,
seit gestern Doktor ich an folgendem Problem rum:
<input type="radio" name="tsg" value="nein"<? if($tab['tsg'] != 'ja'){ echo "checked"; } ?> id='notsg'><label for='notsg'> nein</label>
<input type="radio" name="tsg" value="ja" <? if($tab['tsg'] == 'ja'){ echo "checked"; } ?> id ='jatsg'><label for='jatsg'> ja</label>
<input type="radio" name="tsg2" value="nein"<? if($tab['tsg'] != 'ja'){ echo "checked"; } ?> id='notsg2'><label for='notsg2'> nein</label>
<input type="radio" name="tsg2" value="ja" <? if($tab['tsg'] == 'ja'){ echo "checked"; } ?> id ='jatsg2'><label for='jatsg2'> ja</label>
Im Ziel skript kommt $_POST[tsg] an. $_POST[tsg2] aber nicht.
Mit phpinfo(INFO_VARIABLES); überprüft.
Nichts Niente!
Ich starre auf den Code wie ein Kaninchen und seh keinen Fehler
Wer weiß rat?
@@Hansimglück
<input type="radio" name="tsg2" value="nein"<? if($tab['tsg'] != 'ja'){ echo "checked"; } ?> id='notsg2'><label for='notsg2'> nein</label> <input type="radio" name="tsg2" value="ja" <? if($tab['tsg'] == 'ja'){ echo "checked"; } ?> id ='jatsg2'><label for='jatsg2'> ja</label>
Hier soll es doch sicher $tab['tsg2']
heißen, oder?
Ich würde – wie immer im Markup – die alternative Syntax für Kontrollstrukturen verwenden:
<input type="radio" name="tsg" value="nein" <?php if($tab['tsg'] != 'ja') ?>checked<?php endif; ?> id='notsg'><label for='notsg'> nein</label>
oder in lesbar:
<input
type="radio"
name="tsg2"
value="nein"
<?php if($tab['tsg'] != 'ja') ?>checked<?php endif; ?>
id='notsg2'
>
<label for='notsg2'>nein</label>
Insb. bei Radiobuttons und Checkboxen bietet es sich an, das input
-Element ins label
-Element zu packen. Dann kann man den Code besser formatieren (Umbruch zwischen <input>
und <label>
) und hat trotzdem keinen nicht clickbaren Bereich dazwischen. Auf ID und for
-Attribut könnte man dann verzichten.
Eine Gruppe von Radiobuttons sollte in ein fieldset
-Element mit legend
eingeschlossen werden.
LLAP 🖖
Ich starre auf den Code wie ein Kaninchen und seh keinen Fehler
Nun, wenn !='ja'
=='nein'
sein soll warum schreibst Du das dann nicht gleich so? Das würde den Code deutlich lesbarer machen.
MFG
Ich habs komplett umgeschmissen jetzt klappts.
Hallo Hansimglück,
das, was du zeigst, liefert keinen Grund, warum tsg2 nicht in $_POST enthalten sein sollte.
Wenn es am Server nicht ankommt, stellt sich die Frage, ob der Browser es sendet. Sowas kannst Du im Netzwerk-Tab der Browser-Entwicklerwerkzeuge überprüfen, da kann man sich den Body eines POST Requests anschauen.
Kontrollfragen:
Rolf