Auswahlliste

Volker1

Grünschnabel
Hallo zusammen.
ich habe folgendes Problem. Ich lese Daten aus mysql in eine Liste ein.
Dan stehen die auch alle schön dadrinne. Wenn ich z.B einen Namen aus der Liste ausgewählt habe und das Formular abschicke ist der Name anschliessend nicht mehr selektiert. Mein Frage: wie muss ich dem Programm mitteilen, das es die von mir getroffene Auswahl beibehält. Es folgt der PHP code.

<select name="zeile_betroffener">

<?
while($zeile_betroffener = mysql_fetch_array($res))
{
// es werden die Werte in ein Drop down Menue geschrieben
echo "<option value= '$zeile_betroffener[0]'>".$zeile_betroffener[0]. "</option>";
}
?>
</select>

In $zeile_betroffener steht auch der gewählte Name drinn. Aber im Menue wird immer der Name angezeigt, der beim Einlesen in der sortierreihenfolge halt oben steht
 
Vergleiche einfach in jedem Durchlauf den übermittelten Wert mit dem Wert des Datensatzes und gib bei Übereinstimmung die selected-Attributdeklaration aus.
 
Angenommen das Formular wird per POST-Methode übermittelt, könntest du Folgendes probieren:
PHP:
<select name="zeile_betroffener">
<?php
	while( $zeile_betroffener = mysql_fetch_array($res) ) {
		echo '<option value="'.$zeile_betroffener[0].'"';
		if( isset($_POST['zeile_betroffener']) && $_POST['zeile_betroffener']==$zeile_betroffener[0] ) {
			echo ' selected="selected"';
		}
		echo '>'.$zeile_betroffener[0].'</option>';
	}
?>
</select>
Ich meinte übigens Datensatz statt Zeichensatz.
 
Oh. Das sieht gut aus. Es funktioniert auch, solange bis ich ein anderes Programmteil in dem Formular aufrufe. Das scheint $_POST nicht mehr belegt zu sein. Muss ich dann $_POST mit $_SESSION belgen?
 
Wie wird das Formular denn übermittelt? Falls es per GET-Methode geschieht, musst du natürlich das „$_POST“ durch „$_GET“ ersetzen.
 
Das wird durch POST gemacht. Das was Du aufgeschrieben hast funktioniert ja auch, solange ich in action das gleich Script aufrufe. Nur wenn ich in dem Formular ein anderes Skript aufrufe und dann mit einem Link wieder zurückgehe ist die Selektion so wie bei Neuaufruf.
 
Das Verhalten lässt sich wohl auch nicht ändern. Sonst verarbeite die Formulardaten doch im selben Skript.
 
Danke Dir vielmals. Du hast mir sehr geholfen. Ich überlege mal wie ich das im gleichen Skript dann aufrufe. Danke!!
 
Zurück