Formulareingaben nach Fehlerprüfung stehenlassen (isset)
Björn
- php
0 wahsaga0 Sven Rautenberg0 wahsaga
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
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
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
danke wahsaga, der 1.Tip war spitze !
Gruß
Björn
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
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