Philip P.: mit GET Inhalte in einem Text(eingabe)feld darstellen

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.

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. 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.

      1. 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

      2. 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

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. 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

    1. 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

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }