perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 27
Click for quality!




10.02.2012 / 08:38

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Javascript - Clientprogrammierung zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragtripple combo box...
Seitenanfang
Kann mir jemand helfen eine tripple combo box mit js zu erstellen?

Wenn ich genre auswähle, werden z.Z. die jeweiligen interpreten angezeigt. Nur bei der nächten auswhl werden die Albums des jeweiligen Interpreten nicht angezeigt. Ein JS Fehler bekomme ich aber nicht.

Kann mir jemand sagen woran das liegt?


<html>
<head>
<title></title>
</head>

<body>

<form name="playlist">

Genre:<br />
<select name="x_genre" size="1" onChange="redirect1(this.options.selectedIndex)">
<option>---Genre---</option>
<option value="metal">Metal</option>
<option value="rock">Rock</option>
</select>
<br />

Interpret:<br />
<select name="x_interpret" size="1" onChange="redirect2(this.options.selectedIndex)">
<option>---Interpret---</option>
</select>
<br />

Album:<br />

<select name="x_album" size="1">
<option>---Album---</option>
</select>
<br />

<input type="submit" name="send" value="Senden" />

<script>
<!--

// init array genre...
var genre=new Array();

// array genre...
genre[0]=new Option( "---Genre---", "" )
genre[1]=new Option( "Metal", "metal" )
genre[2]=new Option( "Rock", "rock" )

// init array interpret...
var interpret=new Array();
for (i=0; i<genre.length; i++) {
interpret[i]=new Array();
for (j=0; j<interpret[i].length; j++) {
interpret[i][j]=new Array();
}
}

// array interpret...
interpret[0][0]=new Option( "---Interpret---", "" );
interpret[1][0]=new Option( "Boehse Onkelz", "boehse_onkelz" );
interpret[1][1]=new Option( "Metallica", "metallica" );
interpret[1][2]=new Option( "Doro", "doro" );
interpret[2][0]=new Option( "Juliette and the Licks", "juliette_and_the_licks" );

// init array album...
var album=new Array();
for (i=0; i<genre.length; i++) {
album[i]=new Array();
for (j=0; j<interpret[i].length; j++) {
album[i][j]=new Array();
for (k=0; k<album[i][j].length; k++) {
album[i][j][k]=new Array();
}
}
}

// array album...
album[0][0][0]=new Option( "---Album---", "" );
album[1][0][0]=new Option( "Ein Boeses Maerchen", "ein_boeses_maerchen" );
album[1][0][1]=new Option( "Wir Schrieben Geschichte", "wir_schrieben_geschichte" );
album[1][1][0]=new Option( "And Justice For All", "and_justice_for_all" );
album[1][1][1]=new Option( "Black Album", "black_album" );
album[1][1][2]=new Option( "Kill Em All", "kill_em_all" );
album[1][1][3]=new Option( "Master Of Puppets", "master_of_puppets" );
album[1][1][4]=new Option( "St Anger", "st_anger" );
album[1][2][0]=new Option( "Live", "live" );
album[2][0][0]=new Option( "Like A Bolt Of Lightning", "like_a_bolt_of_lightning" );
album[2][0][1]=new Option( "Youre Speaking My Language", "youre_speaking_my_language" );

//alert(album[0][1][2]);

// *******************************************

var temp=document.playlist.x_interpret

function redirect1(x){

for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<interpret[x].length;i++){
temp.options[i]=new Option(interpret[x][i].text,interpret[x][i].value)
}
temp.options[0].selected=true

}

// *******************************************

var temp1=document.playlist.x_album;

function redirect2(y){
for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null

for (i=0;i<interpret[document.playlist.x_genre.options.selectedIndex][y].length;i++){
temp1.options[i]=new Option(interpret[document.playlist.x_genre.options.selectedIndex][y][i].text,interptet[document.playlist.x_genre.options.selectedIndex][y][i].value)
}

temp1.options[0].selected=true

}

-->
</script>
</form>

</body>
</html>

Datum: 12.03.2006-16:04

Beitragre: tripple combo box...
Seitenanfang
Habe Fehler bei auswahl des Albums gefunden. Habe aber noch ein Problem wenn ich Rock auswähle und nur ein Eintrag vorhanden ist. Dann wird dieser angezeigt und mann kann nichts weiter auswählen, somit kann "redirect2" nicht ausgeführt werden.

Weiss jemand dafür eine Lösung?


var temp1=document.playlist.x_album;

function redirect2(y){

for (m=temp1.options.length-1;m>0;m--)
temp1.options[m]=null

for (i=0;i<album[document.playlist.x_genre.options.selectedIndex][y].length;i++){
temp1.options[i]=new Option(album[document.playlist.x_genre.options.selectedIndex][y][i].text,album[document.playlist.x_genre.options.selectedIndex][y][i].value)
}

temp1.options[0].selected=true

}

Datum: 12.03.2006-16:28

Beitragre: tripple combo box...
Seitenanfang
Wenn Du das Problem so genau beschreiben kannst und der Rest deines Programmes sich sogar mit komplexeren Dingen herumschlägt, was hält dich dann davon ab an der entsprechenden Stelle eine klitzekleine If-Abfrage zu formulieren, die die Alben aktualisiert wenn es nur einen Interpreten gibt ?

Tip : Lass keine Klammern weg, terminiere Anweisungen mit ";", verwende "sprechendere" Variablennamen und verwende Kommentare nicht nur als Bereichsüberschriften sondern zum Beispiel auch um kniffelige Stellen oder die Arbeitsweise von Funktionen zu beschreiben, etc...Das würde Deinen Code schon mal 'ne Ecke robuster, verständlicher und damit besser bearbeitbar und wartbar machen. Dann wachsen Dir auch nicht auf einmal so simple Probleme über den Kopf.

Datum: 13.03.2006-14:07

-






-
-