mit GET Inhalte in einem Text(eingabe)feld darstellen
Philip P.
- php
Hallo zusammen
Ausgangslage:
Aus einer Tabelle will ich Daten holen und die in einem "bearbeiten"-Formular (bestehend aus Textfeldern) wieder einfügen. Wenn ich mit GET die Daten irgendwo (neben den Texteingabefeldern) darstellen will, dann gehts:
<? print $_GET['variablenname'] ?>
Aber wenn ich die Daten in einem Texteingabefeld:
<input class="text" type="text" name="tag" size="2" maxlength="2">
darstellen will, geht das nicht.
Schön wäre natürlich, wenn folgender Code funktionieren würde:
<input class="text" type="text" name="tag" size="2" maxlength="2" value="<? print $_GET['variablenname'] ?>">
Aber das geht natürlich und leider nicht. Wie krieg ich Textfelder eines Formulars ausgefüllt mit GET?
Sonnige Grüsse
Philip P.
hi,
Schön wäre natürlich, wenn folgender Code funktionieren würde:
<input class="text" type="text" name="tag" size="2" maxlength="2" value="<? print $_GET['variablenname'] ?>">
Aber das geht natürlich und leider nicht.
was soll daran natürlich sein?
natürlich geht das so - ein textfeld belegst du mit einem wert vor, in dem du diesen dem value-attribut zuweist.
Wie krieg ich Textfelder eines Formulars ausgefüllt mit GET?
ein kleiner hacken ist natürlich noch dabei - wenn dein text ein " enthält, ist das ungünstig:
dies ist "mein" text.
ergibt: value = "dies ist "mein" text."
wie du siehst, endet hier natürlich der dem value-attribut zugewiesene wert schon nach "dies ist " wieder.
das kann man umgehen, in dem man beispielsweise htmlspecialchars() auf den wert anwendet.
gruß,
wahsaga
falsch:
<input class="text" type="text" name="tag" size="2" maxlength="2" value="<? print $_GET['variablenname'] ?>">
richtig:
<input class="text" type="text" name="tag" size="2" maxlength="2" value='<? print $_GET['variablenname'] ?>'>
Unterschied: Nicht value="..." sondern value='...' verwenden. Keine Anführungs- und Schlusszeichen, sondern Hochkommas verwenden! Interessant.
Danke für eure Hilfe.
Liebe Grüsse Philip P.
Hi,
falsch:
<input class="text" type="text" name="tag" size="2" maxlength="2" value="<? print $_GET['variablenname'] ?>">richtig:
<input class="text" type="text" name="tag" size="2" maxlength="2" value='<? print $_GET['variablenname'] ?>'>
Also dies widerspricht meiner Erfahrung, bei mir geht beides. ich vermut du hast ein
echo '<input...';
MfG
hi,
Unterschied: Nicht value="..." sondern value='...' verwenden. Keine Anführungs- und Schlusszeichen, sondern Hochkommas verwenden! Interessant.
und blödsinnig.
(sofern dein "problem" nicht auf einem parse error auf grund falscher verwendung von anführungszeichen und hochkommata beruhte, wie daniel vermutet hat - aber dann wäre ja deine "problembeschreibung" in höchstem grade mangelhaft gewesen - hast du das von mir beschriebene problem damit nämlich jetzt für texte gelöst, die anführungszeichen enthalten, und bei hochkommata wirst du wieder auf das gleiche problem stoßen.)
gruß,
wahsaga
Hi,
Schön wäre natürlich, wenn folgender Code funktionieren würde:
<input class="text" type="text" name="tag" size="2" maxlength="2" value="<? print $_GET['variablenname'] ?>">
tut er doch, du könntest aber probleme bekommen wenn die seite neu
geladen wird, also ohne $_GET variablen, deshalb ein @$_GET machen.
MfG
hi,
du könntest aber probleme bekommen wenn die seite neu
geladen wird, also ohne $_GET variablen, deshalb ein @$_GET machen.
pfui.
sauber abbprüfen, ob existent und/oder mit inhalt ausgestattet: isset()/empty().
gruß,
wahsaga