Mailinglisten-Archive |
Dirk Heyden wrote:
> Hallo Dennis
>
> Danke für die schnelle Hilfe.. Hat super geklappt..
>
> Aber kannst du mir noch kurz erklären, wo mein Denkfehler war?
Du machst mit echo "....".$i."..."
einen zusammengesetzten String.
Das HTML-Attribut value= erwartet aber " um die Angabe.
Die " schließen und öffnen bei dir aber PHP-seitig den String. Somit
kommt beim Browser nicht
value="Ich bin ein String mit Leerzeichen"
sondern
value=Ich bin ein String mit Leerzeichen
an. Der Browser versucht dann value=Ich zu nehmen und den Rest des
Textes als Teile des HTML-Tags zu interpretieren.
Man sollte generell immer die Werte für HTML-Attribute in " packen, auch
wenn es theoretisch nicht notwendig wäre (z.B. bei width=8 sollte man
lieber width="8" machen).
- Jedenfalls ist das meine Erfahrung.
Mein Tip: Verwende für sowas am besten printf() [1] oder sprintf() [2],
damit kannst du den String dynamisch zusammenpacken und bekommst mehr
Übersicht rein, dann noch ' für deine Strings im PHP, dann brauchst du
die " nicht maskieren und PHP parse'd weniger (=> bissel schneller):
$meinString = 'Ich bin ein Test';
printf('<input type="text" value="%s" name="xyz">', $meinString);
Ergebnis:
<input type="text" value="Ich bin ein Test" name="xyz">
[1] http://www.php.net/printf
[2] http://www.php.net/sprintf
Viele Grüße
--
Dennis Sterzenbach
php::bar PHP Wiki - Listenarchive