Den ausgewählten Wert von Drop-Down-Menü wieder anzeigen

bigtail

Mitglied
Hi,

dieses Code erzeugt das Dateum für die nächsten 7 Tagen in einer Drop-Down-Menü in einem Formular:
PHP:
<?php
echo "<select name='datum'>";
$timestamp = time();
$i=0;
while($i<=7){
$datum = date("d.m.Y",$timestamp + $i*60*60*24);
echo "<option>".$datum."</option>";
$i++;
}
echo "</select>";
?>
Nun möchte ich, dass wenn nicht alle Felder des Formualrs ausgefüllt sind und das Formular nach der Überprüfung wieder ausgegeben wird , das zuvor aus dem Drop-Down-Menü ausgewählte Datum in Drop-Down-Menü angezeigt wird (also SELECTED ist), so dass man nicht nochmal das Datum wählen muss.

Ich sitze jetzt seit 2 Stunden und kriege keine Lösung. Kann mir bitte jemand helfen


Danke
 
Du musst prüfen, ob die Variable $_POST['datum'] existiert (bei einer GET-Anfrage eben $_GET['datum']) und dessen Wert mit dem aktuellen Datum im Durchlauf vergleichen.
 
Hallo!

Ungetestet, aber so ungefähr müsste es stimmen:
PHP:
echo "<option".isset($_POST['datum'])?' selected=\"selected\"':''.">".$datum."</option>";
Gruss Dr Dau
 
PHP:
  <?php
echo "<select name='datum'>";
$timestamp = time();
$i=0;
while($i<=7){
$datum = date("d.m.Y",$timestamp + $i*60*60*24);
if($datum == $_GET[datum]) $selected = "selected";
echo "<option value=\"$datum\" $selected>".$datum."</option>";
unset($selected);
$i++;
}
echo "</select>";
?>

So hat es geklappt.

Danke

Gruß
 
Ein kleiner Verbesserungsvorschlag:
PHP:
echo '<select name="datum">';
$i=0; 
while($i<=7){
	$datum = date('d.m.Y', time() + $i*60*60*24);
	echo '<option value="'.$datum.'"';
	if( isset($_GET['datum'] && $datum == $_GET['datum'] ) {
		echo ' selected="selected"';
	}
	echo '>'.$datum.'</option>';
	$i++;
}
echo '</select>';
 
Zurück