Hi ich habe hier im Forum danach gesucht habe aber leider keine Antwort auf meine Lösung gefunden.
Mein Problem liegt darin das ich ein Menue basteln soll welches über 3 Listboxen hinweg geht.
Listbox 1 : Länder
Listbox 2: Städte
Listbox 3: Firmen
wählt man nun ein Land aus sollen nurnoch die Städte des Landes in Listbox 2 stehen. Hab ich hingekriegt mit Hilfe eines Tutorials
so nun aber der schritt das wenn man eine Stadt auswählt der die Listbox 3 ändert.
Ich hole mir die Datensätze aus 3 MySQL Tabellen die wie folgt aufgebaut sind:
laender: ld_id , name
staedte: st_id, name, ld_id
firmen: ext_ag_id , name , st_id
so und nun hier der Quelltext...
soweit die Scripte und hier der code für die Listboxen:
Meine Überlegung ist das ich in der Funktion update_drp2() den options auch die dazugehörigen Values geben muss nur wie?
Danke für die Hilfe MFG Xarf
*edit*
das klappt nit soviel zu meiner überlegung =/
Mein Problem liegt darin das ich ein Menue basteln soll welches über 3 Listboxen hinweg geht.
Listbox 1 : Länder
Listbox 2: Städte
Listbox 3: Firmen
wählt man nun ein Land aus sollen nurnoch die Städte des Landes in Listbox 2 stehen. Hab ich hingekriegt mit Hilfe eines Tutorials
so nun aber der schritt das wenn man eine Stadt auswählt der die Listbox 3 ändert.
Ich hole mir die Datensätze aus 3 MySQL Tabellen die wie folgt aufgebaut sind:
laender: ld_id , name
staedte: st_id, name, ld_id
firmen: ext_ag_id , name , st_id
so und nun hier der Quelltext...
PHP:
$rs=mysql_query("select * from staedte;");
$rows=mysql_num_rows($rs);
echo "\tvar liste2=new Array($rows)\n"
. "\tfor(var i=0;i<liste2.length;i++)\n"
. "\t\tliste2[i]=new Array(2);\n";
$n=0;
while($zeile=mysql_fetch_assoc($rs)) {
echo "\tliste2[$n][0]=".$zeile['st_id'].";\n"
. "\tliste2[$n][1]='".$zeile['name']."';\n"
. "\tliste2[$n][2]=".$zeile['ld_id'].";\n";
$n++;
}
$rs2=mysql_query("select * from ext_agentur;");
$rows2=mysql_num_rows($rs2);
echo "\tvar liste3=new Array($rows2)\n"
. "\tfor(var i=0;i<liste3.length;i++)\n"
. "\t\tliste3[i]=new Array(2);\n";
$n=0;
while($zeile=mysql_fetch_assoc($rs2)) {
echo "\tliste3[$n][0]=".$zeile['ext_ag_id'].";\n"
. "\tliste3[$n][1]='".$zeile['name']."';\n"
. "\tliste3[$n][2]='".$zeile['st_id']."';\n";
$n++;
}
?>
function update_drp2() {
var x=document.frm_auswahl.drp2.length;
for(var n=0; n<x; n++)
document.frm_auswahl.drp2.options[0]=null;
for(n=0; n<liste2.length; n++) {
if(liste2[n][2]==document.frm_auswahl.drp1.value) {
var NeuerEintrag=new Option(liste2[n][1], liste2[n][0]);
document.frm_auswahl.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
}
}
}
function update_drp3() {
var x=document.frm_auswahl.drp3.length;
for(var n=0; n<x; n++)
document.frm_auswahl.drp3.options[0]=null;
for(n=0; n<liste3.length; n++) {
if(liste2[n][2]==document.frm_auswahl.drp2.value) {
var NeuerEintrag=new Option(liste3[n][1], liste3[n][0]);
document.frm_auswahl.drp3.options[document.frm_auswahl.drp3.length]=NeuerEintrag;
}
}
}
-->
</script>
soweit die Scripte und hier der code für die Listboxen:
HTML:
<form name="frm_auswahl">
<select name="drp1" class="agenturen" onChange="update_drp2()">
<?php
$rs=mysql_query("select * from laender");
while($zeile=mysql_fetch_assoc($rs)) {
echo "<option value=\"".$zeile['ld_id']
. "\">".$zeile['name']."</option>\n";
}
?>
</select><br>
<select name="drp2" size="1" class="agenturen" onChange="update_drp3()">
<option>Start</option>
</select><br>
<select name="drp3" size="1" class="agenturen">
<option>Start</option>
</select><br>
</form>
<script type="text/javascript">
<!--
update_drp2();
update_drp3();
-->
</script>
Meine Überlegung ist das ich in der Funktion update_drp2() den options auch die dazugehörigen Values geben muss nur wie?
Danke für die Hilfe MFG Xarf
*edit*
Code:
document.frm_auswahl.drp2.options[document.frm_auswahl.drp2.length].value=liste2[n][0];
das klappt nit soviel zu meiner überlegung =/
Zuletzt bearbeitet: