Mehrfach Dropdown Menü
Anja
- javascript
0 0 Raik.
Hallo,
ich habe mir im Netz ein Script für ein Dreifach Dropdown Menü gezogen, welches ich für mich erweitern wollte auf ein Vierfach Dropdown Menü. Jeweils die rechte Box enthält die Untermenüs der linken, also die 2. Box die der 1., die 3. die der 2. und die 4. soll die der 3. Box enthalten. Box 4 öffnet dann die Inhalte im Hauptframe. Da ich aber ziemlicher Anfänger bin, ist mir dabei irgendwo ein Fehler unterlaufen, ich weiß aber beim besten Willen nicht wo. Auf jeden Fall funktioniert es problemlos bis zur 3. Box, aber in Box 4 tut sich überhaupt nichts. Kann mir irgend jemand helfen, den Fehler zu finden. Wie gesagt, ich habe überhaupt keinen Plan, warum es nicht funktioniert.
Ich habe jetzt mal das komplette Script, so wie ich es verändert habe, hier rein kopiert. Meine Veränderungen/Ergänzungen habe ich groß geschrieben. Im Dreier Dropdown griff die Funktion redirect2(z) dann auf den Hauptframe zu.
Hier das Script:
<body>
<div align="center"><center>
<p align="center">
<FORM name="isc">
<table border="0" cellspacing="0" cellpadding="0">
<tr align="center">
<td nowrap height="11">
<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option selected>Modelle</option>
<option>Modell 1</option>
<option>Modell 2</option>
</select>
<select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">
<option value=" " selected> </option>
<option value=" " selected>----------------------------</option>
<option value=" " selected>----------------------------</option>
</select>
<select name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">
<option value=" " selected></option>
<option value=" " selected>----------------------------</option>
<option value=" " selected>----------------------------</option>
</select>
<SELECT NAME="STAGE4" SIZE="1" ONCHANGE="REDIRECT3(THIS.OPTIONS.SELECTEDINDEX)">
<OPTION VALUE=" " SELECTED></OPTION>
<OPTION VALUE=" " SELECTED>----------------------------</OPTION>
<OPTION VALUE=" " SELECTED>----------------------------</OPTION>
</SELECT>
<script language="JavaScript">
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
//-->
</script>
<script>
<!--
var groups=document.isc.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("----------------------------","");
group[1][0]=new Option("Kategorie","");
group[1][1]=new Option("Kategorie 1a","");
group[1][2]=new Option("Kategorie 1b","");
group[2][0]=new Option("Kategorie","");
group[2][1]=new Option("Kategorie 2a","");
group[2][2]=new Option("Kategorie 2b","");
var temp=document.isc.stage2
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
redirect1(0)
}
var secondGroups=document.isc.stage2.options.length
var secondGroup=new Array(groups)
for (i=0; i<groups; i++) {
secondGroup[i]=new Array(group[i].length)
for (j=0; j<group[i].length; j++) {
secondGroup[i][j]=new Array() }}
secondGroup[0][0][0]=new Option("----------------------------","");
secondGroup[1][0][0]=new Option("----------------------------","");
secondGroup[1][1][0]=new Option("Unterkategorie"," ");
secondGroup[1][1][1]=new Option("Unter 1a1","");
secondGroup[1][1][2]=new Option("Unter 1a2","");
secondGroup[1][2][0]=new Option("Unterkategorie","");
secondGroup[1][2][1]=new Option("Unter 1b1","");
secondGroup[1][2][2]=new Option("Unter 1b2","");
secondGroup[2][0][0]=new Option("----------------------------","");
secondGroup[2][1][0]=new Option("Unterkategorie","");
secondGroup[2][1][1]=new Option("Unter 2a1","");
secondGroup[2][1][2]=new Option("Unter 2a2","");
secondGroup[2][2][0]=new Option("Unterkategorie","");
secondGroup[2][2][1]=new Option("Unter 2b1","");
secondGroup[2][2][2]=new Option("Unter 2b2","");
var temp1=document.isc.stage3
function redirect1(y){
for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null
for (i=0;i<secondGroup[document.isc.example.options.selectedIndex][y].length;i++){
temp1.options[i]=new Option(secondGroup[document.isc.example.options.selectedIndex][y][i].text,secondGroup[document.isc.example.options.selectedIndex][y][i].value)
}
temp1.options[0].selected=true
REDIRECT2(0)
}
VAR THIRDGROUPS=DOCUMENT.ISC.STAGE3.OPTIONS.LENGTH
VAR THIRDGROUP=NEW ARRAY(GROUPS)
FOR (I=0; I<GROUPS; I++) {
THIRDGROUP[I][J]=NEW ARRAY(SECONDGROUP[I][J].LENGTH)
FOR (K=0; K<SECONDGROUP[I][J].LENGTH; K++) {
THIRDGROUP[I][J][K]=NEW ARRAY() }
}
THIRDGROUP[0][0][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[1][0][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[1][1][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[1][1][1][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[1][1][1][1]=NEW OPTION("PRODUKT 1","PRODUKT1.HTML");
THIRDGROUP[1][1][1][2]=NEW OPTION("PRODUKT 2","PRODUKT2.HTML");
THIRDGROUP[1][1][2][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[1][1][2][1]=NEW OPTION("PRODUKT 3","PRODUKT3.HTML");
THIRDGROUP[1][1][2][2]=NEW OPTION("PRODUKT 4","PRODUKT4.HTML");
THIRDGROUP[1][2][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[1][2][1][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[1][2][1][1]=NEW OPTION("PRODUKT 5","PRODUKT5.HTML");
THIRDGROUP[1][2][1][2]=NEW OPTION("PRODUKT 6","PRODUKT6.HTML");
THIRDGROUP[1][2][2][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[1][2][2][1]=NEW OPTION("PRODUKT 7","PRODUKT7.HTML");
THIRDGROUP[1][2][2][2]=NEW OPTION("PRODUKT 8","PRODUKT8.HTML");
THIRDGROUP[2][0][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[2][1][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[2][1][1][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[2][1][1][1]=NEW OPTION("PRODUKT 1A","PRODUKT1A.HTML");
THIRDGROUP[2][1][1][2]=NEW OPTION("PRODUKT 2A","PRODUKT2A.HTML");
THIRDGROUP[2][1][2][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[2][1][2][1]=NEW OPTION("PRODUKT 3A","PRODUKT3A.HTML");
THIRDGROUP[2][1][2][2]=NEW OPTION("PRODUKT 4A","PRODUKT4A.HTML");
THIRDGROUP[2][2][0][0]=NEW OPTION("----------------------------","");
THIRDGROUP[2][2][1][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[2][2][1][1]=NEW OPTION("PRODUKT 5A","PRODUKT5A.HTML");
THIRDGROUP[2][2][1][2]=NEW OPTION("PRODUKT 6A","PRODUKT6A.HTML");
THIRDGROUP[2][2][2][0]=NEW OPTION("PRODUKTE"," ");
THIRDGROUP[2][2][2][1]=NEW OPTION("PRODUKT 7A","PRODUKT7A.HTML");
THIRDGROUP[2][2][2][2]=NEW OPTION("PRODUKT 8A","PRODUKT8A.HTML");
VAR TEMP2=DOCUMENT.ISC.STAGE4
FUNCTION REDIRECT2(A){
FOR (M=TEMP2.OPTIONS.LENGTH-1;M>0;M--)
TEMP2.OPTIONS[M]=NULL
FOR (J=0;J<THIRDGROUP[DOCUMENT.ISC.EXAMPLE.OPTIONS.SELECTEDINDEX][A].LENGTH;J++) {
TEMP2.OPTIONS[J]=NEW OPTION(THIRDGROUP[DOCUMENT.ISC.EXAMPLE.OPTIONS.SELECTEDINDEX][A][J].TEXT,THIRDGROUP[DOCUMENT.ISC.EXAMPLE.OPTIONS.SELECTEDINDEX][A][J].VALUE)
}
TEMP2.OPTIONS[0].SELECTED=TRUE
}
FUNCTION REDIRECT3(Z){
PARENT.HAUPTFRAME.LOCATION=TEMP2[Z].VALUE
}
//-->
</script>
</td></tr></table></FORM>
</center></div>
</body>
Ich wäre echt froh, wenn mir jemand helfen könnte.
Gruss
Anja
Hi !
Ich würde dir raten, das Ganze nochmal zu posten und zwar mir
Autorenangabe (Hamid Cheheltani)
Skript-Namen (Triple Combo)
und einem Link,wo man sich das mal anschauen kann
http://javascriptkit.com/script/script2/triplecombo.shtml
Mit etwas Glück bleibt dir "wahsagas" Doppelposting-Vorwurf erspart ...
Niemand wird sich sowas aus dem Thread rauskopieren, weil's mit den
Großbuchstaben von vornherein nicht hinhaut , ( SELECTEDINDEX ), und
Keiner Zeit noch Lust hat alles erst umzukrempeln !
Mit einmal kurz reinschauen ist es bei solchen Sachen ja nicht getan, oder !?
Bevor du versuchst, das Ganze in einen Frame zu zwingen, sollte es erst
mal so laufen wie es ursprünglich geplant war .
Allerdings ist die Nuss mit Sicherheit nicht leicht ... und von mir schon
garnicht zu knacken !
:-\
So und nun sind die Experten gefragt !!
Hallo Anja,
also bei dem von dir geposteten code tut sich erst mal garnichts, auch nicht im zweiten dropdown.
abgesehen davon macht man für sowas einen link auf eine beispielseite, statt das forum mit solchen mengen code zu belasten (das muss alles irgendwo gespeichert werden und die suche hat damit auch mehr zu tun).
also gib uns einen link, wo man sich das mal anschauen kann und dann sehen wir weiter.
freundl. Grüße aus Berlin, Raik