Problem mit Selectbox
File
- javascript
Hallo!
Ich möchte mehrere Select Boxen miteinander verknüpfen. Die erste Box ist statisch. Danach fülle eich automatisch die 2 Box. Bis dahin habe ich es hinbekommen. Aber wie kann ich mir nun den Wert der 2 SelectBox nehmen und darauf basierend eine neue SQL Abfrage machen, die dann die 3 Box füllt. Bei der ersten Box habe ich mir 3 Array's erstellt, die die erforderlichen Informationen enthalten, aber wie mache ich es hier.
Bin ein Javascript Neuling, daher bitte ganz vorne anfangen.
Danke
Gruß
File
hi,
Aber wie kann ich mir nun den Wert der 2 SelectBox nehmen und darauf basierend eine neue SQL Abfrage machen, die dann die 3 Box füllt.
In dem du einen neuen Request an den Server stellst.
Bei der ersten Box habe ich mir 3 Array's erstellt, die die erforderlichen Informationen enthalten, aber wie mache ich es hier.
AJAX wäre ein zeitgemäßes Stichwort für so ein unterfangen.
gruß,
wahsaga
Hi !
Bin ein Javascript Neuling, daher bitte ganz vorne anfangen.
Wuahaha, das kann jetzt etwas dauern ;-)
Also, Du hast ein Eingabefeld, nennen wir es "Hans".
<FORM>
<INPUT TYPE=TEXT NAME="Hans" VALUE="">
</FORM>
Nun kannst Du in das Textfeld "händisch" (also anklicken und über die Tastatur einen Wert reinschreiben) oder über ein Skript einen Wert eingeben.
<SCRIPT>
document.forms[0].Hans.value="der kann's";
</SCRIPT>
So, document dürfte klar sein. Im document befinden sich ein oder mehrere Formulare. Daher ist es ein Array und wird ensprechend angesprochen. Im Formular befindet sich ein Eingabefeld, das den Namen "Hans" hat. Ein Eingabefeld kann einen Wert haben, der eingegeben wurde. Auf englisch: "value". Und den kannst Du setzen.
"Wenn dazu keine Fragen mehr sind können wir das Kapitel abschließen und wenden uns nunmehr der Selectbox zu" (Standard-Satz meines Digitaltechnik-Profs. Egal, ob es eine Frage gab oder nicht, er machte weiter. Falls doch ein Fragender sich zu Wort melden durfte, kam "Das ist eine gute Übungsaufgabe für zu Hause". Tja.)
Selectboxen sind für Dein Unterfangen sehr eklig. Aber dazu später.
<FORM>
<SELECT NAME="Hans">
<OPTION VALUE="1">Baum</OPTION>
</SELECT>
</FORM>
So, wir haben eine Selectbox mit dem Namen "Hans" und einem Element. Angezeigt wird "Baum". Wenn es ausgewählt wird, hat das Element den Wert "1". Viele OPTION-Tags ergeben mal wieder ein Array. Die Anzahl der Optionen erfährst Du durch
document.forms[0].Hans.options.length
Hans ist die Selectbox, options das Array und length gibt die Anzahl der Elemente im options-Array an.
document.forms[0].Hans.selectedIndex
gibt Dir an, das wievielte Element ausgewählt wurde
document.forms[0].Hans.options[document.forms[0].Hans.selectedIndex].value
gibt Dir den Wert des ausgewählten Elements zurück.
document.forms[0].Hans.options[document.forms[0].Hans.options.length] = new Option (text,wert,default_selected,selected)
fügt ein neues Element ein, bei dem "text" angezeigt wird, das Element hat den wert "wert", es ist "default_selected" und den letzten Parameter kann ich jetzt mit meinen Worten nicht so genau erklären. ;-)
Innerhalb einer Seite ist das alles kein Problem. Wenn Du nun ein Fenster aufmachst, das eine SQL-Anweisung ausführt und den Rückgabewert in das Select-Element einfügen willst, dann mußt Du
in der Seite mit der Selectbox eine Funktion schreiben, die ein Element in die Selectbox einfügt
im Fenster, das Du aufmachst, diese Funktion mittels
window.opener.einfuege_funktion(neues_element);
einfügst.
So, jetzt geht's weiter.
Wenn die SEITE als File vorliegt und das FENSTER in der Datenbank ist, dann gibt es bei ORACLE WebDB Probleme, denn das Fenster kann dann die Funktion der Seite nicht aufrufen.
Wenn SEITE und FENSTER in der Datenbank sind, dann müssen, falls es Probleme bei der Namensauflösung gibt, die URL des Fensters aus IP-Adresse und URL der SEITE aus IP-Adresse bestehen.
Bsp.:
10.20.30.40 = www.hans.de
SEITE="http://10.20.30.40/irgend_was.html"
FENSTER="http://www.hand.de/irgend_was_anderes.html"
klappt nicht bei fehlerhafter oder nicht vorhandener DNS-Namensauflösung !!
So, wenn dazu keine weiteren Fragen sind... ;-)
Gruß
Hans