114801
Goto Top

Formular: aktuelle Auswahl (Option) nach Absenden beibehalten

Hallo,
und zwar habe ich derzeit ein normales HTML-Formular inklusive Werten, nun möchte ich aber, dass nach dem Absenden und erneutem Aufruf der Seite auch die gewählte Option beibehalten wird. Ich meine damals auch einen Code dafür gehabt zu haben, aber nach vielen Jahren ist der auch nicht auffindbar und die Kenntnisse in PHP leider beschränkt face-sad

Die Optionen können gerne in einem Array stehen da für dieses bisschen keine Datenbank benötigt wird, es geht unter anderem nur darum, dass der Benutzer etwas auswählt, und nach dem Absenden wird die Seite neu geladen und die Sachen dementsprechend per print ausgegeben face-wink

Die Absendemethode ist post

Hier ein Beispiel:
<form method="post">  
	<select name="Beispiel">  
	<option value="item1">Eintrag 1</option>  
	<option value="item2">Eintrag 2</option>  
	<option value="item3">Eintrag 3</option>  
	</select>
        <button>OK</button>
</form>
Es wäre sehr schön, wenn zu Anfang als Beispiel Eintrag 2 vorab gewählt ist und nach absenden des Formulars mit endsprechender Auswahl des Benutzers dann der ausgewählte Eintrag verwendet wird face-smile

Content-Key: 343758

Url: https://administrator.de/contentid/343758

Printed on: April 23, 2024 at 13:04 o'clock

Mitglied: 133417
Solution 133417 Jul 18, 2017 at 16:17:01 (UTC)
Goto Top
Da gibts viele Möglichkeiten. Meistens nimmt man Session-Variablen dafür her.
<?php
session_start();
if (isset($_POST['Beispiel'])){  
	$_SESSION['selItem'] = $_POST['Beispiel'];  
}
?>

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>Select save state</title>
</head>
<body>
<form method="post">  
	<select name="Beispiel">  
        <option value="item1" <?php echo (($_SESSION['selItem'] == "item1")? "selected" : ""); ?>>Eintrag 1</option>  
        <option value="item2" <?php echo (($_SESSION['selItem'] == "item2")? "selected" : ""); ?>>Eintrag 2</option>  
        <option value="item3" <?php echo (($_SESSION['selItem'] == "item3")? "selected" : ""); ?>>Eintrag 3</option>  
	</select>
    <input type="submit" value="Senden">  
</form>
</body>
</html>
Gruß
Mitglied: 114801
114801 Jul 19, 2017 updated at 13:40:37 (UTC)
Goto Top
OK, danke, werde diese Variante mal testen.

Nach extrem langen suchen fand ich eine einfache Lösung, hätte man drauf kommen sollen, aber ich dachte es gäbe noch andere Möglichkeiten face-smile

Via if face-wink ist es auch möglich, wobei ich es etwas unpraktisch finde, weil man die Sachen auch in einem Array packen könnte, aber es wäre die Frage, wie man das mit der "Optionsgruppe" lösen könnte?

Egal, das Auswahlfeld enthält zum Glück nicht zu viele Einträge face-big-smile

Werde mal schauen ob ich Check-/Radioboxen auch so hinbekomme face-big-smile
Mitglied: 133417
133417 Jul 19, 2017 updated at 13:44:39 (UTC)
Goto Top
aber es wäre die Frage, wie man das mit der "Optionsgruppe" lösen könnte?
Die Optionsgruppe nicht statisch erstellen sondern über PHP und einer Schleife ausgeben und nur bei der aktiven Auswahl das "selected" mit ausgeben, fertig.
Geht zwar auch per JavaScript, aber so geht es auch ohne.