Hallo zusammen,
folgende Anforderungen soll mein Script erfüllen:
wenn in einem Dropdown eine Option angeklickt wurde, soll anhand dieser Auswahl eine Datenbankabfrage erfolgen, deren Ergebnis die Optionen das nächsten Dropdown bilden. Das Ganze soll sich dann nochmal wiederholen, so dass ich mit drei Dropdowns alle nötigen Auswahlen getroffen habe. Im Anschluss daran wird das alles per POST in die Datenbank geschrieben werden.
Das Schreiben des gesamten Forms, es befinden sich noch ein paar weitere input-Felder auf der Seite, funktioniert.
Bisher ist es so, dass nach dem ersten Dropdown (1. Auswahl) ein Fenster aufpopt und man die 2. Auswahl trifft. Danach wird das Fenster geschlossen und ein neues geöffnet, in dem man dann die 3. und letzte Auswahl trifft. Danach wird alles an das aufrufende Fenster zurückgegeben und an den entsprechenden Stellen in input-Felder geschrieben, die dann später vom POST erfasst werden. Problem dabei ist, das die komplette Seite neu geladen wird, und somit vorher eingegebene Werte wieder neu eingegeben werden müssen.
Mit der angestrebten Version wird das Auswählen einfacher und ausserdem soll dann auch nicht mehr die komplette Seite neu geladen werden, sondern nur die Dropdowns, so das die anderen Werte erhalten bleiben.
Nun zu dem Problem. Ich denke, das geht nur mit Ajax. Nur habe ich davon nicht wirklich die Ahnung. Es schwirrt viel im www rum, aber nirgends was wo man erfährt wie das abläuft und wie man das programmtechnisch umsetzt. Würdet ihr mir bitte bei der Umsetzung bisschen unter die Arme greifen ?!?!
Erstes konkretes Probelm dazu ist, das ich zwar ne Funktion habe die auch meine Erstgewählte Option erkennt, aber wie kriege ich die dann an PHP um die Abfrage zu machen und des Ergebnis dessen wieder zurück in das neue Dropdown?
Hier der Aufruf und die Funktion(mit dem Versuche eines requests):
Danke und Gruß
Michael
folgende Anforderungen soll mein Script erfüllen:
wenn in einem Dropdown eine Option angeklickt wurde, soll anhand dieser Auswahl eine Datenbankabfrage erfolgen, deren Ergebnis die Optionen das nächsten Dropdown bilden. Das Ganze soll sich dann nochmal wiederholen, so dass ich mit drei Dropdowns alle nötigen Auswahlen getroffen habe. Im Anschluss daran wird das alles per POST in die Datenbank geschrieben werden.
Das Schreiben des gesamten Forms, es befinden sich noch ein paar weitere input-Felder auf der Seite, funktioniert.
Bisher ist es so, dass nach dem ersten Dropdown (1. Auswahl) ein Fenster aufpopt und man die 2. Auswahl trifft. Danach wird das Fenster geschlossen und ein neues geöffnet, in dem man dann die 3. und letzte Auswahl trifft. Danach wird alles an das aufrufende Fenster zurückgegeben und an den entsprechenden Stellen in input-Felder geschrieben, die dann später vom POST erfasst werden. Problem dabei ist, das die komplette Seite neu geladen wird, und somit vorher eingegebene Werte wieder neu eingegeben werden müssen.
Mit der angestrebten Version wird das Auswählen einfacher und ausserdem soll dann auch nicht mehr die komplette Seite neu geladen werden, sondern nur die Dropdowns, so das die anderen Werte erhalten bleiben.
Nun zu dem Problem. Ich denke, das geht nur mit Ajax. Nur habe ich davon nicht wirklich die Ahnung. Es schwirrt viel im www rum, aber nirgends was wo man erfährt wie das abläuft und wie man das programmtechnisch umsetzt. Würdet ihr mir bitte bei der Umsetzung bisschen unter die Arme greifen ?!?!
Erstes konkretes Probelm dazu ist, das ich zwar ne Funktion habe die auch meine Erstgewählte Option erkennt, aber wie kriege ich die dann an PHP um die Abfrage zu machen und des Ergebnis dessen wieder zurück in das neue Dropdown?
Hier der Aufruf und die Funktion(mit dem Versuche eines requests):
Code:
<td><select name="glashersteller_re" onchange="FensterOeffnenAutomatischRe(this.value)"> function FensterOeffnenAutomatischRe (Wert) { var glashersteller_re = Wert; var http_request = false; function macheRequest(glashersteller_re) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/xml'); // zu dieser Zeile siehe weiter unten } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen'); return false; } http_request.onreadystatechange = alertInhalt; http_request.open('GET', url, true); http_request.send(null); } function alertInhalt() { if (http_request.readyState == 4) { if (http_request.status == 200) { alert(http_request.responseText); } else { alert('Bei dem Request ist ein Problem aufgetreten.'); } } } }
Danke und Gruß
Michael
Kommentar