Syntax
tangotaenzer
- php
0 Dennis0 tangotaenzer0 Dennis
0 Der Martin0 tangotaenzer0 Auge
2 ChrisB
Hallo liebe Leute,
ich bin schier am verzweifeln, denn ich kann folgendes Problem nicht lösen:
Habe eine Umfrage mit PHP und HTML anhand eines Buches erstellt, die wie folgt aussieht
<form action="auswertung.php" method="post">
<fieldset style="border: none">
<?php
foreach($vote as $nr => $entry)
{
$nr == $vote_default ? $default ='checked':$default = '';
echo '<p>' . "<input name="fld_vote" $default type="radio" value=$nr>$entry\n";
echo '</p>';
}
?>
<input class="button" type="submit" value="Abstimmen"/>
</fieldset>
</form>
Die Umfrage funktioniert zwar, aber wenn ich sie mit einem Validator überprüfe habe ich 20 Fehler, die sich alle auf folgenden Teil beziehen:
"<input name="fld_vote" $default type="radio" value=$nr>$entry\n";
So wird z.B. ein Endtag ("/>") von input erwartet, was mir zwar einleuchtet, ich aber nicht weiß, wie ich es einfügen muss (habe schon alles mögliche probiert!).
value=$nr>$entry\n hier wird das >-Zeichen immer fehlinterpretiert.
Über Eure Hilfe dankbar, viele Grüße ans Forum
Hi tangotaenzer,
So wird z.B. ein Endtag ("/>") von input erwartet, was mir zwar einleuchtet, ich aber nicht weiß, wie ich es einfügen muss (habe schon alles mögliche probiert!).
Du möchtest folgendes machen:
foreach ($vote as $nr => $etnry) {
$default = $vote_default == $nr ? 'checked="checked" ' : '';
echo '<p><label><input name="fld_vote" ' . $default . 'type="radio" ';
echo 'value="' . htmlspecialchars($nr) . '" />' . htmlspecialchars($entry);
echo '</label></p>';
}
Beachte bitte auch die Verwendung von htmlspecialchars() um Cross-Site Scripting (XSS-Angriffen) vorzubeugen.
Viele Grüße,
~ Dennis.
Hallo Dennis,
das war es leider nicht habe es gerade ausprobiert und man sieht dann nicht mehr den Text zu den Radio-Buttons. Der verschwindet dann einfach.
Viele Grüße
Hi tangotaenzer,
das war es leider nicht habe es gerade ausprobiert und man sieht dann nicht mehr den Text zu den Radio-Buttons. Der verschwindet dann einfach.
In meinem Code war ein Tippfehler, ich habe einmal $etnry und einmal $entry geschrieben ;-) Dass dir PHP dafür keine Notice-Meldung zeigt, dass du das Error Reporting nicht auf E_ALL stehen hast, wie es zum Testen sinnvoll ist.
Wir haben doch grade erst hier erlebt, dass man sich teilweise dumm & dämlich sucht nach einem Fehler, welchen man mit E_ALL schnell gefunden hätte. *g*
Viele Grüße,
~ Dennis.
Hallo,
echo '<p>' . "<input name="fld_vote" $default type="radio" value=$nr>$entry\n";
warum setzt du das value-Attribut nicht in Anführungszeichen?
value=$nr>$entry\n hier wird das >-Zeichen immer fehlinterpretiert.
Mit Anführungszeichen wäre das nicht passiert ...
So long,
Martin
Hallo Martin,
warum setzt du das value-Attribut nicht in Anführungszeichen?
Mit Anführungszeichen wäre das nicht passiert ...
Hatte ich probiert, ist aber auch nicht richtig, viele Grüße
Hallo
»» warum setzt du das value-Attribut nicht in Anführungszeichen?
»» Mit Anführungszeichen wäre das nicht passiert ...
Hatte ich probiert, ist aber auch nicht richtig, viele Grüße
Nun, vielleicht ist es nicht die Lösung deines Problems, aber wenn ich deine Anmerkung, dass für <input> ein schließender Tag erwartet wird, richtig interpretiere (Verwendung von XHTML), sind die Anführungszeichen für alle Attributwerte *zwingend* vorgeschrieben.
Tschö, Auge
Hi,
Die Umfrage funktioniert zwar, aber wenn ich sie mit einem Validator überprüfe habe ich 20 Fehler, die sich alle auf folgenden Teil beziehen:
"<input name="fld_vote" $default type="radio" value=$nr>$entry\n";
So wird z.B. ein Endtag ("/>") von input erwartet, was mir zwar einleuchtet, ich aber nicht weiß, wie ich es einfügen muss (habe schon alles mögliche probiert!).
value=$nr>$entry\n hier wird das >-Zeichen immer fehlinterpretiert.
Dann machst du offenbar den beliebten Anfänger-Denkfehler, deine ungeparsten PHP-Dateien dem Validator vorzuwerfen - statt lediglich dessen HTML-Output.
MfG ChrisB