• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

option selected

Tobi44

Mitglied
Hallo,

ich möchte bei einem Formular eine Möglichkeit zum Auswählen mittels select geben. Klappt alles, Problem ist, dass wenn das Formular abgesendet wird und eine entsprechend definierte Fehlermeldung (aufgrund leerer Felder etc.) kommt, das selected-Feld immer auf einen Standardwert zurückgesetzt wird.
Möchte, dass dann auch dort der zuvor ausgewählte Wert wieder drin steht, wie bei den anderen Feldern. Wie geht das?
Bei normalen input-Feldern habe ich einfach ein value="<?php echo "".$text_get.""; ?>" eingefügt, und $text_get natürlich vorher definiert, sodass der zuvor dort eingetragene Wert auch nach dem Absenden + Anzeigen der Fehlermeldung wieder eingetragen wird.

Danke & Gruß
 
Hallo,

müsste so ungefähr sein. das kann man natürlich noch erweitern mit value:
PHP:
<select name="TEST"> 
<?php 
$options = array('Wert1', 'Wert2', 'WertA', 'WertB'); 
$current = $_POST['TEST'];   
foreach ( $options as $option) {
   $selected = $option == $current ? ' selected="selected"' : '';
   echo '<option'. $selected .'>'. $option .'</option>';
   }
?> 
</select>

Cheffchen
 
Hi, danke für die Antwort.

Doch so kompliziert... :D Werde das morgen mal testen.
Bei den inputs hab ich halt einfach
HTML:
<input type="text" name="blub" class="input" value="<?php echo "".$blabla.""; ?>" size="15">
gemacht.

Gruß
 
Wenn scho:
PHP:
<input type="text" name="blub" class="input" value="<?php echo htmlspecialchars($blabla); ?>" size="15">
 
@T!p-Top
Das ist ja nicht so wichtig. Sowas inner Art verwende ich nur bei der Ausgabe der Kommentare usw.

Gruß
 
Zuletzt bearbeitet:
Edit:

@Cheffchen
Dein Script klappt nicht. Wird nach wie vor der zu erst eingetragene Wert wiedergegeben, nicht jedoch der vom User ausgewählte.
 
Hallo,

habe das jetzt extra getestet und siehe da funzt.

hier mal das komplette Formolar was so funzt, der erste wert ist der Standard wert oder gibst gleich beim ersten aufruf ein $_POST['TEST'] mit.

Code:
<form name="FORMULAR" method="post">

<select name="TEST">
<?php
$options = array('Wert1', 'Wert2', 'WertA', 'WertB');
$current = $_POST['TEST'];
foreach ( $options as $option) {
   $selected = $option == $current ? ' selected="selected"' : '';
   echo '<option'. $selected .'>'. $option .'</option>';
   }
?>
</select>

<input type="submit" name="senden">

</form>

Cheffchen
 

Neueste Beiträge

Zurück
Oben