formularauswahl trotz reload erhalten
daywandler
- php
hey ...
ich habe nun mir ein dropdownmenü gebastelt, das funktioniert auch wunderbar ... nun habe ich aber folgendes problem.
das dropdown menü wird auf jeder seite angezeigt ... ... wenn ich aber die seite wechsel, springt das dropdown menü automatisch auf den ersten wert in der liste ...
kann ich irgendwie erreichen, dass die liste auf der auswahl stehen bleibt, die man aufgewählt hat?
hier mein formular:
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="wert" value="wert1" />
<select size="1" name="plani" onChange="this.form.submit();">
<?php
while ($galaxy2 = mysql_fetch_array($result3))
{
echo "<option name="plani" value="".$galaxy2['planet_id'].""";
if($_POST['plani'] == $galaxy2['planet_id'])
echo 'selected';
echo ">".$galaxy2['planet_name']." [".$galaxy2['galaxy']."
:".$galaxy2['sonnensystem'].":".$galaxy2['position']."]</option>";
} ?>
</select>
</form>
die auswahl wird dann in der session gespeichert:
if (isset($_POST[wert])) {
$_SESSION["akt_plani"] = $_POST[plani];
}
die Session ist nötig, da ich diesen wert auf anderen Seiten für eine Berechnung bzw. eine datenbankabfrage brauche ...
hoi
im prinzip is dein ansatz ja schon richtig, speicher die auswahl in der session und prüfe es, allerdings solltest du vor dein "selected" noch ein leerzeichen machen, da sonst <option value="bla"selected> bei rauskommt, und somit das selected nicht erkannt wird
Danke erstmal für deine schnelle Antwort.
Auch wenn ich ein Leerzeichen dazwischen mache, ändert sich leider nichts ...
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="wert" value="wert1" />
<select size="1" name="plani" onChange="this.form.submit();">
<?php
while ($galaxy2 = mysql_fetch_array($result3))
{
echo "<option name="plani" value="".$galaxy2['planet_id'].""";
if($_POST['plani'] == $galaxy2['planet_id'])
echo ' selected';
echo ">".$galaxy2['planet_name']." [".$galaxy2['galaxy']."
:".$galaxy2['sonnensystem'].":".$galaxy2['position']."]</option>";
} ?>
</select>
</form>
die auswahl wird dann in der session gespeichert:
if (isset($_POST[wert])) {
$_SESSION["akt_plani"] = $_POST[plani];
}
nunja, du prüfst immer gegen $_POST, was aber nich immer vorhanden ist
führe die aktualisierung deiner session-variable vorher durch, und prüfe gegen die session-variable, denn die ist doch immer da
sofern das dann wirklich nich funktioniert, dann stimmt was mit deiner session nicht ;)
Danke für den Tip, jetzt funktioniert es.
fein ;)
viel spaß noch