• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Problem mit Double Combo - wie mache ich zwei davon in ein Formular?

Voodoo

New member
Hallo,

ich kann leider kein JS, benutze es aber manchmal um Dinge umzusetzen die HTML so nicht kann. In einem Formular möchte ich zwei (oder auch mehr) von den Double-Combos haben, bekomme das aber nicht hin. Das Script verwechselt immer die 2. Felder. Da der Code jeweils dynamisch aufgebaut wird (per Perl) kann ich hier auch keinen kompletten Code pasten, aber das Script ist ja relatic bekannt. Irgendwo muss man dem doch etwas hinzufügen können damit es weiß wo was gemacht werden soll bei 2 DCs.

HTML:
$VMformdata1="<TR><TD ALIGN=\"RIGHT\"><FONT FACE=\"$afont0\" COLOR=\"$afarbe1\" SIZE=\"2\">--Muttername--: </FONT></TD><TD>
<select name=\"Feldname1\" size=\"1\" onChange=\"redirect(this.options.selectedIndex)\">
--muttertext--
--optlist--
</select></TD></TR>
<TR><TD ALIGN=\"RIGHT\"><FONT FACE=\"$afont0\" COLOR=\"$afarbe1\" SIZE=\"2\">--Tochtername--: </FONT></TD><TD><select name=\"Feldname2\" size=\"1\">
--tochtertext--
</select>
<input type=\"hidden\" name=\"test\" value=\"Go!\">
<script>
<!--

var groups=document.Formular.Feldname1.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

--grouplist--

var temp=document.Formular.Feldname2

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
}
//-->
</script></TD></TR>
 
Zuletzt bearbeitet von einem Moderator:
Ich hab' keine Ahnung, was das sein soll. Dein Code sieht nach abhängigen <select>s aus... aber in einer sehr schlechten Realisierung

Das Script verwechselt immer die 2. Felder.
Tja - das hat man davon, wenn man globale Variablen verwendet...

Da der Code jeweils dynamisch aufgebaut wird (per Perl) kann ich hier auch keinen kompletten Code pasten
Das ist kein Grund. Du kannst das fertige HTML immer direkt im Browser abfragen.

Irgendwo muss man dem doch etwas hinzufügen können damit es weiß wo was gemacht werden soll bei 2 DCs.
Naja - du könntest den kompletten Code duplizieren und im Duplikat die globalen Variablen umbenennen... solltest du aber nicht.
Besser ist, du suchst dir ein besser geschriebenes (und aktuelleres - oder willst du wirklich den Mosaic noch unterstützen?) Skript - dafür gibt es ja viele im Netz.
 
Hallo kkapsner,

das Script nennt sich "Double Combo" und stammt von javascriptkit.com. Es wurde in versch. Foren empfohlen und ist das einzige was ich gefunden habe was das macht was ich haben möchte. Es dient wohl normalerweise dazu nach dem zweiten Auswahlschritt auf eine bestimmte URL weiterzuleiten. Ich brauche nur den Teil mit dem Aufbau des. versch. Menüs. Wenn du eine bessere Lösung kennst wäre ich für einen Tipp sehr danbkbar. Anbei noch der komplette Code aus dem HTML:

HTML:
<form name="Formular" action="http://www.example.com" method="post">

<TABLE WIDTH="100%" ALIGN="CENTER" BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR><TD COLSPAN="2" ALIGN="CENTER"><FONT FACE="Verdana" COLOR="#000000" SIZE="2">1. Ebay-Kategorie: 29223</FONT></TD></TR><TR><TD ALIGN="RIGHT"><FONT FACE="Verdana" COLOR="#000000" SIZE="2">Genre: </FONT></TD><TD>
<select name="Spezi1Genre" size="1" onChange="redirect(this.options.selectedIndex)">
<option></option>
<option >Antikes & Rares</option>
<option >Auto & Verkehr</option>
<option  selected>Belletristik</option>
<option >Computer & Technik</option>
<option >Freizeit & Entertainment</option>
<option >Geschichte</option>
<option >Gesellschaft & Politik</option>
<option >Ingenieurwissenschaften</option>
<option >Kinder- & Jugendliteratur</option>
<option >Kochen & Genießen</option>
<option >Kunst & Kultur</option>
<option >Nachschlagewerke & Lexika</option>
<option >Orts- & Landeskunde</option>
<option >Ratgeber & Lebensführer</option>
<option >Reiseführer & Reiseberichte</option>
<option >Religion</option>
<option >Sport</option>
<option >Studium & Wissen</option>

</select></TD></TR>
<TR><TD ALIGN="RIGHT"><FONT FACE="Verdana" COLOR="#000000" SIZE="2">Thema: </FONT></TD><TD><select name="Spezi1Thema" size="1">
<option>Frauenliteratur</option>
</select>
<input type="hidden" name="test" value="Go!">
<script>
<!--

var groups=document.Formular.Spezi1Genre.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()

group[1][0]=new Option("")
group[1][1]=new Option("Sonstige")
group[1][2]=new Option("Religion")
group[1][3]=new Option("Geschichte")
group[2][0]=new Option("")
group[2][1]=new Option("Automobil, Motorrad & Fahrrad")
group[2][2]=new Option("Luftfahrt & Zeppelin")
group[2][3]=new Option("Schifffahrt & Nautik")
group[3][0]=new Option("")
group[3][1]=new Option("Abenteuerromane")
group[3][2]=new Option("Frauenliteratur")
group[3][3]=new Option("Historische Romane")
group[3][4]=new Option("Humor")
group[3][5]=new Option("Krimis & Thriller")
group[3][6]=new Option("Liebe & Romantik")
group[3][7]=new Option("Lyrik, Theater & Drehbücher")
group[3][8]=new Option("Science-Fiction")
group[3][9]=new Option("Weltliteratur & Klassiker")
group[3][10]=new Option("Western")
group[4][0]=new Option("")
group[4][1]=new Option("Computer & Internet")
group[4][2]=new Option("Elektrotechnik & Elektronik")
group[4][3]=new Option("Energietechnik")
group[4][4]=new Option("Post- & Fernmeldewesen")
group[4][5]=new Option("Rundfunk & Fernsehen")
group[4][6]=new Option("Technik")
group[5][0]=new Option("")
group[5][1]=new Option("Basteln & Dekoration")
group[5][2]=new Option("Garten & Pflanzen")
group[5][3]=new Option("Hausbau & Einrichten")
group[5][4]=new Option("Haustiere & Tiere")
group[5][5]=new Option("Hobby, Kreatives & Sammeln")
group[5][6]=new Option("Mode & Schmuck")
group[5][7]=new Option("Musik & Musikinstrumente")
group[5][8]=new Option("Rätsel, Spiele & Denksport")
group[6][0]=new Option("")
group[6][1]=new Option("Allgemein")
group[6][2]=new Option("Archäologie")
group[6][3]=new Option("Kunstgeschichte")
group[6][4]=new Option("Deutsche Geschichte")
group[6][5]=new Option("Schweizer Geschichte")
group[6][6]=new Option("Österreichische Geschichte")
group[7][0]=new Option("")
group[7][1]=new Option("Alte Berufe")
group[7][2]=new Option("Amerikana")
group[7][3]=new Option("Esoterik & Spiritualität")
group[7][4]=new Option("Familien- & Wappenkunde")
group[7][5]=new Option("Freimaurer & Geheimbünde")
group[7][6]=new Option("Geschichte & Militär")
group[7][7]=new Option("Handwerk & Handel")
group[7][8]=new Option("Kultur- & Sittengeschichte")
group[7][9]=new Option("Kunst- & Architekturgeschichte")
group[7][10]=new Option("Land- & Forstwirtschaft")
group[7][11]=new Option("Literaturgeschichte")
group[7][12]=new Option("Nahrungsgüterwirtschaft")
group[7][13]=new Option("Politik & Zeitgeschichte")
group[7][14]=new Option("Volks- & Völkerkunde")
group[7][15]=new Option("Wirtschaft & Industrie")
group[8][0]=new Option("")
group[8][1]=new Option("Bauwesen")
group[8][2]=new Option("Bergbau & Metallurgie")
group[8][3]=new Option("Eisenbahn & Brückenbau")
group[8][4]=new Option("Maschinenbau")
group[9][0]=new Option("")
group[9][1]=new Option("Bilderbücher")
group[9][2]=new Option("Geschichten & Erzählungen")
group[9][3]=new Option("Kindersachbücher")
group[9][4]=new Option("Märchen")
group[9][5]=new Option("Schulbücher")
group[10][0]=new Option("")
group[10][1]=new Option("Backen")
group[10][2]=new Option("Cocktails & Drinks")
group[10][3]=new Option("Desserts & Süßspeisen")
group[10][4]=new Option("Diäten")
group[10][5]=new Option("Einmachen & Einkochen")
group[10][6]=new Option("Feinschmecker & Gourmet")
group[10][7]=new Option("Fisch & Meeresfrüchte")
group[10][8]=new Option("Grillen & Barbecue")
group[10][9]=new Option("Kalte Küche")
group[10][10]=new Option("Kinderküche")
group[10][11]=new Option("Klassische Rezepte")
group[10][12]=new Option("Kräuterbücher")
group[10][13]=new Option("Saucen & Dips")
group[10][14]=new Option("Schnelle Küche")
group[10][15]=new Option("Suppen & Eintöpfe")
group[10][16]=new Option("Tischkultur")
group[10][17]=new Option("Vegane Küche")
group[10][18]=new Option("Vegetarische Küche")
group[10][19]=new Option("Vollwertküche")
group[10][20]=new Option("Weine")
group[11][0]=new Option("")
group[11][1]=new Option("Architektur")
group[11][2]=new Option("Biographien & Wahre Geschichten")
group[11][3]=new Option("Erotica")
group[11][4]=new Option("Film")
group[11][5]=new Option("Fotografie")
group[11][6]=new Option("Grafik & Illustration")
group[11][7]=new Option("Innenarchitektur & Design")
group[11][8]=new Option("Kunst, Malerei & Skulptur")
group[11][9]=new Option("Mode & Kostüme")
group[11][10]=new Option("Museen & Ausstellungen")
group[11][11]=new Option("Musik")
group[11][12]=new Option("Plastik & Skulptur")
group[11][13]=new Option("Popkultur & Medien")
group[11][14]=new Option("Theater & Tanz")
group[11][15]=new Option("Zirkus")
group[12][0]=new Option("")
group[12][1]=new Option("Brockhaus")
group[12][2]=new Option("Buchwesen & Bibliografien")
group[12][3]=new Option("Chroniken & Jahrbücher")
group[12][4]=new Option("Curiosa")
group[12][5]=new Option("Enzyklopädien")
group[12][6]=new Option("Fachwörterbücher")
group[12][7]=new Option("Lexika")
group[12][8]=new Option("Wörterbücher")
group[12][9]=new Option("Zitate & Sprichwörter")
group[13][0]=new Option("")
group[13][1]=new Option("Atlanten & Kosmografien")
group[13][2]=new Option("Baden-Württemberg")
group[13][3]=new Option("Bayern")
group[13][4]=new Option("Berlin")
group[13][5]=new Option("Böhmen & Mähren")
group[13][6]=new Option("Brandenburg")
group[13][7]=new Option("Bremen")
group[13][8]=new Option("Danzig")
group[13][9]=new Option("Deutsche Kolonien")
group[13][10]=new Option("Elsass")
group[13][11]=new Option("Eupen & Malmedy")
group[13][12]=new Option("Grenzmark")
group[13][13]=new Option("Hamburg")
group[13][14]=new Option("Hessen")
group[13][15]=new Option("Kolonien")
group[13][16]=new Option("Lothringen")
group[13][17]=new Option("Mecklenburg-Vorpommern")
group[13][18]=new Option("Niedersachsen")
group[13][19]=new Option("Nordrhein-Westfalen")
group[13][20]=new Option("Nordschleswig")
group[13][21]=new Option("Ostpreußen")
group[13][22]=new Option("Pommern")
group[13][23]=new Option("Posen")
group[13][24]=new Option("Rheinland-Pfalz")
group[13][25]=new Option("Saarland")
group[13][26]=new Option("Sachsen")
group[13][27]=new Option("Sachsen-Anhalt")
group[13][28]=new Option("Schlesien")
group[13][29]=new Option("Schleswig-Holstein")
group[13][30]=new Option("Sudeten")
group[13][31]=new Option("Thüringen")
group[13][32]=new Option("Westpreußen")
group[14][0]=new Option("")
group[14][1]=new Option("Beruf & Karriere")
group[14][2]=new Option("Eltern, Ehe & Familie")
group[14][3]=new Option("Geld & Börse")
group[14][4]=new Option("Gesundheit & Ernährung")
group[14][5]=new Option("Haushalt & Küche")
group[14][6]=new Option("Lebensführung & Motivation")
group[14][7]=new Option("Recht")
group[15][0]=new Option("")
group[15][1]=new Option("Afrika")
group[15][2]=new Option("Ägypten")
group[15][3]=new Option("Amerika")
group[15][4]=new Option("Antillen")
group[15][5]=new Option("Arabien")
group[15][6]=new Option("Argentinien")
group[15][7]=new Option("Asien")
group[15][8]=new Option("Australien")
group[15][9]=new Option("Baltikum")
group[15][10]=new Option("Barbados")
group[15][11]=new Option("Belgien & Luxemburg")
group[15][12]=new Option("Bergsteigen & Wandern")
group[15][13]=new Option("Bolivien")
group[15][14]=new Option("Brasilien")
group[15][15]=new Option("Bulgarien")
group[15][16]=new Option("Chile")
group[15][17]=new Option("China")
group[15][18]=new Option("Costa Rica & Nicaragua")
group[15][19]=new Option("Dänemark")
group[15][20]=new Option("Deutschland")
group[15][21]=new Option("Dominikanische Republik")
group[15][22]=new Option("Ecuador mit Galápagos")
group[15][23]=new Option("England")
group[15][24]=new Option("Europa")
group[15][25]=new Option("Expeditionen, Forschungsreisen")
group[15][26]=new Option("Finnland")
group[15][27]=new Option("Frankreich")
group[15][28]=new Option("Griechenland")
group[15][29]=new Option("Großbritannien")
group[15][30]=new Option("Hongkong & Macau")
group[15][31]=new Option("Indien")
group[15][32]=new Option("Indonesien & Bali")
group[15][33]=new Option("Irland")
group[15][34]=new Option("Island")
group[15][35]=new Option("Israel")
group[15][36]=new Option("Italien")
group[15][37]=new Option("Jamaika")
group[15][38]=new Option("Japan")
group[15][39]=new Option("Kanada")
group[15][40]=new Option("Kenia")
group[15][41]=new Option("Kolumbien")
group[15][42]=new Option("Korea")
group[15][43]=new Option("Kroatien")
group[15][44]=new Option("Kuba")
group[15][45]=new Option("Malaysia & Singapur")
group[15][46]=new Option("Malediven")
group[15][47]=new Option("Malta")
group[15][48]=new Option("Marokko")
group[15][49]=new Option("Mauritius")
group[15][50]=new Option("Mexiko")
group[15][51]=new Option("Namibia")
group[15][52]=new Option("Neuseeland & Südsee")
group[15][53]=new Option("Niederlande")
group[15][54]=new Option("Norwegen")
group[15][55]=new Option("Ostafrika")
group[15][56]=new Option("Österreich")
group[15][57]=new Option("Panama")
group[15][58]=new Option("Peru")
group[15][59]=new Option("Philippinen")
group[15][60]=new Option("Polen")
group[15][61]=new Option("Portugal")
group[15][62]=new Option("Rumänien")
group[15][63]=new Option("Russland")
group[15][64]=new Option("Schottland")
group[15][65]=new Option("Schweden")
group[15][66]=new Option("Schweiz")
group[15][67]=new Option("Slowakei")
group[15][68]=new Option("Slowenien")
group[15][69]=new Option("Spanien")
group[15][70]=new Option("Südafrika")
group[15][71]=new Option("Thailand")
group[15][72]=new Option("Tschechien")
group[15][73]=new Option("Tunesien")
group[15][74]=new Option("Türkei")
group[15][75]=new Option("Ungarn")
group[15][76]=new Option("Uruguay")
group[15][77]=new Option("USA")
group[15][78]=new Option("Venezuela")
group[15][79]=new Option("Vietnam")
group[15][80]=new Option("Wales")
group[15][81]=new Option("Zypern")
group[16][0]=new Option("")
group[16][1]=new Option("Bibeln")
group[16][2]=new Option("Christentum")
group[16][3]=new Option("Gebetbücher")
group[16][4]=new Option("Gesangbücher")
group[16][5]=new Option("Islam")
group[16][6]=new Option("Judaica & Hebraica")
group[16][7]=new Option("Judentum")
group[16][8]=new Option("Theologie, allgemein")
group[17][0]=new Option("")
group[17][1]=new Option("Allgemein")
group[17][2]=new Option("Angelsport")
group[17][3]=new Option("Bootsport")
group[17][4]=new Option("Fechten")
group[17][5]=new Option("Fitness")
group[17][6]=new Option("Flugsport")
group[17][7]=new Option("Fußball")
group[17][8]=new Option("Golf")
group[17][9]=new Option("Jagen")
group[17][10]=new Option("Kampfsport & Selbstverteidig.")
group[17][11]=new Option("Leichtathletik")
group[17][12]=new Option("Motorsport")
group[17][13]=new Option("Olympische Spiele")
group[17][14]=new Option("Radsport")
group[17][15]=new Option("Reitsport")
group[17][16]=new Option("Schach")
group[17][17]=new Option("Sportschießen")
group[17][18]=new Option("Tanz & Ballett")
group[17][19]=new Option("Tauchsport")
group[17][20]=new Option("Tennis")
group[17][21]=new Option("Turnen")
group[17][22]=new Option("Wassersport")
group[17][23]=new Option("Wintersport")
group[18][0]=new Option("")
group[18][1]=new Option("Alchemie & Grenzwissenschaft")
group[18][2]=new Option("Biologie")
group[18][3]=new Option("Botanik & Gartenbau")
group[18][4]=new Option("Chemie")
group[18][5]=new Option("Diplomarbeiten")
group[18][6]=new Option("Geowissenschaften")
group[18][7]=new Option("Geschichte & Archäologie")
group[18][8]=new Option("Informatik")
group[18][9]=new Option("Journalistik & Medienwiss.")
group[18][10]=new Option("Kulturwissenschaften")
group[18][11]=new Option("Kunstwissenschaften")
group[18][12]=new Option("Mathematik")
group[18][13]=new Option("Medizin")
group[18][14]=new Option("Pädagogik")
group[18][15]=new Option("Philosophie")
group[18][16]=new Option("Physik & Astronomie")
group[18][17]=new Option("Politikwissenschaft")
group[18][18]=new Option("Psychologie")
group[18][19]=new Option("Rechtswissenschaften")
group[18][20]=new Option("Soziologie")
group[18][21]=new Option("Sportwissenschaften")
group[18][22]=new Option("Sprache & Literatur")
group[18][23]=new Option("Theologie")
group[18][24]=new Option("Wirtschaftswissenschaften")
group[18][25]=new Option("Zoologie")


var temp=document.Formular.Spezi1Thema

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
}
//-->
</script></TD></TR>
</TABLE>
<input type="submit" value="Änderungen speichern" />
</form></CENTER></FONT>

Was genau meinst du mit "Tja - das hat man davon, wenn man globale Variablen verwendet..."?

lg
Voodoo
 
Es wurde in versch. Foren empfohlen
Dann müssen diese Empfehlungen schon relativ alt sein, denn das Skript ist wirklich nicht gut.

Ich hab' vor Urzeiten (2011) mal bei Beispiel gebaut, wie man sowas machen kann: Fenstertitel
Würde ich heute auch anders lösen (mit data-*-Attributen und nicht den title missbrauchen), aber wenigstens funktioniert es mit mehreren <select>s. (ACHTUNG: das Teil verwendet mein Framework, was ich dir jetzt nicht empfehlen würde, aber das kann man relativ schnell auf ein anderes umschreiben.)

Was genau meinst du mit "Tja - das hat man davon, wenn man globale Variablen verwendet..."?
Das das Skript schlecht geschrieben ist.
 
Zurück
Oben