Session problem!

proloser

Erfahrenes Mitglied
Hallo,

Gewählte Land im Dropdown Selektieren
PHP:
 if($row['land'] == $_SESSION['land']) {
    $land_auflisten .= "<option value='$row['land]' selected>$row['land']</option>";
  } else {
    $land_auflisten .= "<option value='$row['land']'>$row['land']</option>";
  }


Session setzen
PHP:
if($_POST['land_setzen']) {
    unset($_SESSION['land']);  
    $_SESSION['land'] =  $_POST['land']; ;
  }


Formular
HTML:
<form action="index.php" method="POST" name="form">
  <select name="land">
    $land_auflisten
  </select>
  <input type="submit" name="land_setzen" value="Land wählen">
</form>


Das ganze klappt wunderbar nur ein kleines Problem ...

Ich wähle ein Land und klicke auf "Land wählen" nun wird das erste Land in der Liste angezeigt ... aktualisiere ich die Seite wird das richtige Land Selektiert aber es sollte sofort Selektiert werden!

Hat da jemand eine Idee?

MfG
 
Zuletzt bearbeitet:
Du solltest die Strings der alphanumerischen Indizes auch wirklich als solche kennzeichnen.
Also sowas $row[land] sollte dann so $row['land'] aussehen.
Und das hier $_SESSION[land'] duerfte Dir einen Fehler um die Ohren werfen.
 
Sorry bei mir im Scrtipt ist es richtig, kommt vom abändern!

Aber warum muss zuerst aktualisiert werden damit das richtige Land angezeigt wird?

Das war eigentlich meine Frage! ;)
 
Wenn die Reihenfolge der Code-Teile in einem Beitrag dieselbe ist wie die des tatsächlichen Codes, dann findet die Aktualisierung des ausgewählten Werts erst nach der Generierung der Auswahl statt. Damit muss das Skript immer erst noch einmal durchlaufen werden, damit die Auswahl stimmt.
 
Oh, ich glaub das selbe hast du mir schonmal gesagt aber diesmal war es etwas komplizierter! :)

Hab den Code Teil jetzt einfach in den Header geschrieben, nun klappt es.

Dankeschön!




Noch ne Frage:
Wie kann ich alle Session löschen außer "$_SESSION[land]"
 
Zuletzt bearbeitet:
Du koenntest $_SESSION['land'] zwischenspeicher, dann alle Session-Daten mit session_unset() loeschen und dann $_SESSION['land'] wieder belegen.
 
Zurück