Björn: Formulareingaben nach Fehlerprüfung stehenlassen (isset)

Hallo,

das wurmt mich schon ein ganze Weile und jetzt brauch ich's wieder:

Der User gibt in Formularfelder seine Daten ein.
Nach click auf "Submit" erfolgt die Fehlerprüfung.

Wird ein Fehler gefunden, erhält der User die passende Meldung
Alle Felder werden geleert (das soll nicht geschehen)

hab das jetzt so:

echo'<input type="text" name="vorname"
value="'.(((isset($vorname))?$vorname:"").'"</td>';

irgendwas stimmt nicht

wenn variable $vorname gesetzt,dann : $vorname anzeigen, ansonsten Textfeld: leer ("")

verzweifel, und froh über jeden Tip !!

Gruß Björn

  1. hi,

    echo'<input type="text" name="vorname"
    value="'.(((isset($vorname))?$vorname:"").'"</td>';

    irgendwas stimmt nicht

    wenn variable $vorname gesetzt,dann : $vorname anzeigen, ansonsten Textfeld: leer ("")

    bin nicht ganz sicher, ob das so geht, diese if-kurzschreibweise innerhalb eines echos zu verwenden.

    probier mal alternativ:

    $vornamevalue = (isset($vorname)) ? $vorname : "";
    echo'<input type="text" name="vorname" value="'.$vornamevalue.'"</td>';

    gruss,
    wahsaga

    1. hi,

      ähm, noch 'ne anmerkung, gerade eben übersehen...

      echo'<input type="text" name="vorname"
      value="'.(((isset($vorname))?$vorname:"").'"</td>';

      vllt. liegt's auch daran, dass du den <input>-tag nach dem value gar nicht schliesst (spitze klammer > fehlt), sondern direkt die </td> zumachen willst...

      gruss,
      wahsaga

      1. danke wahsaga, der 1.Tip war spitze !

        Gruß
        Björn

  2. Moin!

    hab das jetzt so:

    echo'<input type="text" name="vorname"
    value="'.(((isset($vorname))?$vorname:"").'"</td>';

    irgendwas stimmt nicht

    Warum so kompliziert?

    echo "<input type='text' name='vorname' value='$vorname'>";

    Das funktioniert prima (sofern register_globals eingeschaltet sind, was sie aber besser nicht sein sollten). Wenn das Formular zum ersten Mal und ohne Daten aufgerufen wird, ist $vorname natürlich leer und fügt keinen Namen ein. Bei späteren Korrekturen wird der Inhalt eingefügt.

    Aber natürlich kann man das so, wie du es oben versucht hast, auch machen. Du mußt nur deine Klammern unter Kontrolle haben. Du öffnest 4 runde Klammern, schließt aber nur 3!

    echo'<input type="text" name="vorname" value="'.(isset($vorname)?$vorname:"").'">';

    So sollte es eben auch gehen. Ist nur zusätzlicher Mehraufwand.

    Das Problem mit dem nicht geschlossenen <input> wurde dir ja auch schon erzählt.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
    1. hi,

      echo "<input type='text' name='vorname' value='$vorname'>";
      Wenn das Formular zum ersten Mal und ohne Daten aufgerufen wird, ist $vorname natürlich leer und fügt keinen Namen ein.

      nicht ganz, $vorname ist dann nicht leer, sondern wahrscheinlich gar nicht definiert. je nach eingestelltem error level gibt das dann warnungen. abgesehen davon, dass sowas nicht wirklich saubere programmierung ist...

      gruss,
      wahsaga