"er" merkt sich da garnichts.
Zitat:
|
Jedes Mal, wenn das Formular abgeschickt wird (ob durch den submit-Button oder durch javascript-submit(), egal) sendet der Browser alle benannten, gültigen Elemente des Formulars als Name=Wert Paare an den Webserver. Daraus, und nur daraus, baut PHP für diesen Durchlauf des Skripts das Feld _POST zusammen.
|
PHP macht aufgrund der _POST Daten etwas und schickt eine
neue HTML Seite mit einem
neuen Formular an den Browser.
Gehen wir es mal von Anfang an durch. Du rufst das Skript das erste Mal auf, das erste <select> wird mit den DB-Daten gefüllt, der Rest ist erstmal egal.
Du wählst im ersten <select> CC01 aus. Der Browser sendet die Anfrage mit select_centren=CC01
&select_einrichtung=
&select_arbeitsbereich= ab. PHP macht daraus
PHP-Code:
$_POST = array(
'select_centren' => 'CC01',
'select_einrichtung' => '',
'select_arbeitsbereich' => ''
);
und
dann wird Dein Skript abgearbeitet - von oben nach unten. Das erste <select> wird <option value="" selected="selected> und den Daten aus der DB gefüllt.
$_POST['select_centren'] ist gleich 'CC01' also wird das zweite <select> mit <option value="" selected="selected> und dem Ergebnis der Abfrage
Code:
SELECT DISTINCT einrichtung ... WHERE cc='CC01' ...
gefüllt. Das dritte <select> ist hier egal.
So, diese Ausgabe
ersetzt die bisherige Seite im Browser. Die Standardwerte der ersten beiden <select> Elemente sind "". Wird das Formular wieder abgeschickt, macht der Browser wieder genau das gleiche: Das aktuelle Formular nehmen, die bennanten, gültigen Elemente als Name=Wert Paare an den Webserver senden. Und das ist nach den Voreinstellungen select_centren=
&select_einrichtung=
&select_arbeitsbereich=
Und PHP macht daraus
PHP-Code:
$_POST = array(
'select_centren' => '',
'select_einrichtung' => '',
'select_arbeitsbereich' => ''
);
Und dann wird Dein Skript abgearbeitet - wieder von oben nach unten. Das erste <select> wird <option value="" selected="selected> und den Daten aus der DB gefüllt.
$_POST['select_centren'] ist gleich ''. Also wird das zweite <select> mit <option value="" selected="selected> und dem Ergebnis der Abfrage
Code:
SELECT DISTINCT einrichtung ... WHERE cc='' ...
gefüllt.
usw usw. Es ist immer das selbe Spiel. Browser stellt Seite dar, Browser sendet Anfrage samt aktuellen Daten an den Webserver, PHP macht was mit den Daten und sendet Antwort, Browser ersetzt Seite durch Antwort.
Was Du jetzt willst (es gibt andere Möglichkeiten, aber bleiben wir bei der hier) ist, dass bereits ausgewählte Daten im neuen Formular als Standardwert markiert werden. Wenn der Benutzer also nichts am neuen Formular ändert (einen anderen Wert auswählt) wird wieder der bisherige Wert als Name=Wert Paar an den Webserver geschickt.
Zitat:
|
Wenn also $_POST['select_centren'] gesetzt ist, musst Du schon in der ersten while-Schleife überprüfen, ob $rows["CC"]===$_POST['select_centren'] ist. Und wenn das der Fall ist, genau dieses <option> Element mit selected="selected" versehen. Genauso dann mit $rows["einrichtung"] in der nächsten while-Schleife.
|