$_SESSION <option> frage

crashx

Erfahrenes Mitglied
Ich stehe wieder mal auf einem Schlauch!

Ich habe eine Dropdown auswahl welche die Monate beinhaltet.

PHP:
echo '<select name="monat" class="insrt">';
  echo '<option>Januar</option>';
  echo '<option>Februar</option>';
  echo '<option>M&auml;rz</option>';
  echo '<option>April</option>';
  echo '<option>Mai</option>';
  echo '<option>Juni</option>';
  echo '<option>Juli</option>';
  echo '<option>August</option>';
  echo '<option>September</option>';
  echo '<option>Oktober</option>';
  echo '<option>November</option>';
  echo '<option>Dezember</option>';
echo '</select> ';
Ich übergebe nun das ausgewählte an die nächste Seite mittels POST.
Auf der neuen Seite wird das resultat in eine Session variable geschrieben.
PHP:
$_SESSION['monat'] = $_POST['monat']
Nun kann man aber im verlaufe des Formulars wieder auf die erste Seite zurück und ich will erreichen das der Wert in der $_SESSION['monat'] nun im Dropdown als "selected" erscheint, aber ich stehe voll auf dem Schlauch :(
Beim Dropdown mit den Tagen, habe ich das gelöst nur irgend wie kommt mir die Lösung für die Monate nicht in den Sinn.

Lösung Tage:
PHP:
echo '<select name="tag" class="insrt">';
  for($i = 1;$i < 32; $i++){
    if($i == $_SESSION['tag']){
      echo '<option selected>'.$i.'</option>';
    }
    echo '<option>'.$i.'</option>';
  }
echo '</select> ';

Ich wäre euch sehr dankbar, wenn ihr den Knoten in meinem Schlauch lösen könntet ;)
 
Zuletzt bearbeitet:
Zu Dumm von mir :-)
Habe die Lösung selbst gefunden
Das Zauberwort ist Array

PHP:
echo '<select name="monat" class="insrt">';
  $monat = array();
  $monat[] = 'Januar';
  $monat[] = 'Februar';
  $monat[] = 'M&auml;rz';
  $monat[] = 'April';
  $monat[] = 'Mai';
  $monat[] = 'Juni';
  $monat[] = 'Juli';
  $monat[] = 'August';
  $monat[] = 'September';
  $monat[] = 'Oktober';
  $monat[] = 'November';
  $monat[] = 'Dezember';
  for($i = 0; $i < 12; $i++){
    if($monat[$i] == $_SESSION['monat']){
      echo '<option selected>'.$monat[$i].'</option>';
    }
    echo '<option>'.$monat[$i].'</option>';
  }
echo '</select> ';
 
hi!

bei den Tagen funktioniert das ganze, weil du da Ziffern hast.

Wenn du dieses Prinzip nun auch auf die Monate anwendest. Perfekt =)

Du musst dann z.b. bei dem Select in den Options, Values angeben. Das würd dann ungefähr so aussehen:

PHP:
$monate = array('januar','februar','märz', ....);

echo '<select name="monat" class="insrt">';
  for($i = 1;$i =< 12; $i++){
    if($i == $_SESSION['monat']){
      echo '<option value=''.$i.''selected>'.$monate[$i].'</option>';
continue;
    }
    echo '<option value=''.$i.''>'.$monate[$i].'</option>';
  }
echo '</select> ';

Achtung!! kein copy und paste ;) - $monate noch bis zum ende auffüllen.

MfG
Christian
 
Zu Dumm von mir :-)
Habe die Lösung selbst gefunden
Das Zauberwort ist Array

PHP:
echo '<select name="monat" class="insrt">';
  $monat = array();
  $monat[] = 'Januar';
  $monat[] = 'Februar';
  $monat[] = 'M&auml;rz';
  $monat[] = 'April';
  $monat[] = 'Mai';
  $monat[] = 'Juni';
  $monat[] = 'Juli';
  $monat[] = 'August';
  $monat[] = 'September';
  $monat[] = 'Oktober';
  $monat[] = 'November';
  $monat[] = 'Dezember';
  for($i = 0; $i < 12; $i++){
    if($monat[$i] == $_SESSION['monat']){
      echo '<option selected>'.$monat[$i].'</option>';
    }
    echo '<option>'.$monat[$i].'</option>';
  }
echo '</select> ';



Du hast da nochn kleinen Käfer drin ;)
im if Zweig musst du danach noch ein Continue; machen, sonst erschein der Monat bzw Tag 2x =)

Schlaf gut ;)
 
Hi,

kommt auf die Weise überhaupt was an? Du hast ja gar keine values in den option-Tags...
Gibst Du die Monate auch in einer Schleife aus?

Beispiel:

PHP:
$monate = array('Januar', 'Februar', ...);
echo '<select name="tag" class="insrt">';
  for($i = 1; $i <= 12; $i++){
    echo '<option value="' . $i . '"';
    if($_SESSION['monat'] == $i){
       echo ' selected';
    } 
    echo '>' . $monate[$i-1] . '</option>';
  }
echo '</select> ';

LG

EDIT: Ah, selbst gelöst ;)
 
Zuletzt bearbeitet:
Zurück