| 

.NET C# Java Javascript Exception

2
Hallo,

ich habe 2 (oder mehrere) Select-Boxen z.B. wie
<select name="gebaeude" value="gebaeude" onchange="document.gebaeude.submit();">


Die werte für die einzelnen Boxen kommen aus der Datenbank.

Es funktioniert soweit auch, nur habe ich ein "Anzeige"-Problem:

Wenn ich bei der 2. Select-Box eine Auswahl treffe, werden alle Formularfelder nach dem Submit "geleert" und der User kann seine bisher getroffene Auswahl nicht mehr sehen.

Die Werte sind in $_POST zwar noch vorhanden, aber ich würde ja gerne dem User seine bisher getroffene Auswahl direkt in den Select-Boxen anzeigen.

Gibt es da einen Weg?
02.02.2012
knopf009 39 4
3 Antworten
1
Du kannst entweder die Werte aus $_POST nutzen und via PHP dein <select> Element intelligenter machen und Aufgrund der Werte aus $_POST eine Vorauswahl treffen (Einfach selected für option setzen).

<select name="gebaeude" size="5">
<option value="Heino">Heino</option>
<option value="Michael Jackson">Michael Jackson</option>
// das selected muss durch php gesetzt werden
<option selected value="Tom Waits">Tom Waits</option>
<option value="Nina Hagen">Nina Hagen</option>
<option value="Marianne Rosenberg">Marianne Rosenberg</option>
</select>


PS: Ja es sind Personen und keine Gebäude - copy paste example :-)

Du musst beim iterieren deines SQL-Ergebnisses also den Datenbank wert mit dem $_POST['gebaeude'] Wert vergleichen und entsprechend das "selected" der option hinzufügen.

ODER

Ich verstehe nicht genau warum du beim ändern unbedingt das Form abschicken musst. Mich würde das als Benutzer wahnsinnig machen. Wenn du die onchange-Methode einfach weg lässt, kannst du eine <input type="submit" ... /> Element verwenden um das Formular zu versenden. Dann werden beide Werte gleichzeitig zum Server versandt und stehen in $_POST zur Verfügung.

Wenn du eine Frage hast benutze bitte die Kommentar-Funktion direkt unter meiner Antwort :-)

Gruß
02.02.2012
Nicolai Schönberg 2,4k 2 9
0
zunächst einmal vielen Dank für die Antwort!

Ich präzisiere hier nochmal mein Problem:

In der ersten Select Box wählt der User z.B. aus 3 Werten: Apfel, Birne, Pampelmuse (die aus der DB kommen ).

Wählt er nun Apfel, sollen bei der 2. Select-Box nur Werte erscheinen, die zu Apfel passen
(auch aus der DB)

Natürlich mache ich mit
selected
den Vergleich bei der 1. Select-Box.
Aber das Problem ist, das nach der Auswahl ab der 2.ten Select-Box durch das Submit
die Auswahl der anderen Boxen wieder "aufgehoben" wird und der "erste" Wert aus der
SELECT-Abfrage drinsteht, was den User natürlich verwirren kann.

Aber ich muss bei PHP ein submit machen, wie soll ich sonst an die Werte für die folgenden Boxen kommen? ;-)

Ich könnte statt bei onChange einen submit zu machen ja auch einer JS-Variablen einen
Wert zuweisen, der nützt mir aber für meine PHP-Abfrage nichts.

Und in PHP steht in $_POST erst etwas drin, wenn abgeschickt wurde...

Mit PHP alleine wird es also nicht gehen, deshalb ja meine Frage hier...
02.02.2012
knopf009 39 4
Dann wäre Ajax am besten für dich. Schonmal gemacht? Erfahrung mit jQuery?
Nicolai Schönberg 03.02.2012
-1
ich habe jetzt schon öfter gehört, dass es nur damit geht.
Erfahrung mit jQuery habe ich noch keine, aber das hilft nichts.
Da muss ich durch...rzp. einlernen
03.02.2012
knopf009 39 4
1
Man muss es nicht mit jQuery machen. Man kann es auch mit JavaScript machen, JQuery nimmt ein wenig Arbeit ab. Versuch dich mal am besten rein zu arbeiten in das Thema und wenn du dann Probleme hast stellst du eine neue Frage. PS: Nutze öfter die Kommentar-Funktion
Nicolai Schönberg 03.02.2012

Stelle deine Anzeige-select-box-Frage jetzt!