<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" >
<script type="text/javascript">
<!--
var autos = {
'Ich habe kein Auto' : {
'Ich habe kein Auto' : [
'Ich habe kein Auto'
]
},
'Alfa Romeo' : {
'147' : [
'1,6 T.Spark 105PS 3T',
'1,6 T.Spark 105PS 5T',
'1,6 T.Spark 120PS 3T',
'1,6 T.Spark 120PS 5T',
'3,2 V6 24V GTA'
],
'Crosswagon Q4' : [
'1,9 JTD 16V'
],
'Sportwagon' : [
'1,6 T.Spark',
'1,8 T.Spark',
'1,9 JTD',
'1,9 JTD 16V M-JET',
'2,0 JTS',
'2,4 JTD 20V M-JET',
'2,5 V6 24V',
'3,2 V6 24V GTA'
]
},
'Aston Martin' : {
'DB7' : [
'GT',
'GT A',
'Vantage Coupé',
'Vantage Volante'
],
'DB9' : [
'Coupé',
'Volante'
],
'V8 Vantage' : [
'4,3 V8'
],
'Vanquish' : [
'V12',
'V12 S'
]
},
'Audi' : {
'A2' : [
'1,2 TDI',
'1,4',
'1,4 TDI (75PS)',
'1,4 TDI (90PS)',
'1,6 FSI'
],
'Allroad quattro' : [
'2,5 TDI (163PS)',
'2,5 TDI (180PS)',
'2,7 T'
],
'TT' : [
'Coupé 1,8 T (150PS)',
'Coupé 1,8 T (180PS)',
'Roadster 1,8 T quattro (225PS)',
'Roadster 3,2 V6 quattro'
]
}
}
// Felder
var arrCarFields = new Array("aktAutomarke", "autoModell", "autoVariante");
// Funktion initialisiert die Selectgruppen
// objSel - Ausgangs-Select-Gruppe (hier: document.cars.elements[arrCarFields[0]])
function init(objSel) {
var i=0;
var blnChecked;
var objForm = objSel.form;
objSel.length = 0;
// Alle Marken durchlaufen
for (var strEntry in autos) {
// Falls es sich um die erste Komponente handelt - selektieren
if(i++ == 0){
blnChecked = true;
// Falls noch nachfolgende Felder upgedatet werden müssen
updateModell(objForm, autos[strEntry], 1);
}else{
blnChecked = false;
}
objSel.options[objSel.length] = new Option(strEntry, strEntry, false, blnChecked);
}
}
// Baut die Select-Gruppen ab einem übergenenen Index auf (intFeld)
// objForm - Objekt des Formulars, in dem die Select-Gruppen enthalten sind
// arrHelp - Komponente des Array-Objekts, die verarbeitet werden soll
// intFeld - Index des ersten zu bearbeitenden Feldes (korrespondiert mit arrCarField)
function updateModell(objForm, arrHelp, intFeld){
var blnChecked = false; // Testvariable
var i=0; // Zählvariable
var strOption; // Ausgabestring in Option
objForm.elements[arrCarFields[intFeld]].length = 0;
// Übergebenen Array komponentenweise durchlaufen
for(var strEntry in arrHelp){
// Falls es sich um den ersten Eintrag handelt -> selektieren
if(i++ == 0){
blnChecked = true;
// Falls noch nachfolgende Felder upgedatet werden müssen
if(intFeld < arrCarFields.length-1)
updateModell(objForm, arrHelp[strEntry], (intFeld+1));
}else{
blnChecked = false;
}
// Handelt es sich um ein Array -> Index ausgeben, sonst auf Index enthaltenen String ausgeben
strOption = (typeof(arrHelp[strEntry]) == "object") ? strEntry : arrHelp[strEntry];
// Neue Option erstellen und an Select-Gruppe anhängen
objForm.elements[arrCarFields[intFeld]].options[objForm.elements[arrCarFields[intFeld]].length] = new Option(strOption, strOption, false, blnChecked);
}
}
function showModell(objSel) {
// Modell updaten
updateModell(objSel.form, autos[objSel.options[objSel.selectedIndex].value], 1);
}
function showVariante(objSel) {
// Automarke ermitteln
var strMarke = objSel.form.elements[arrCarFields[0]].options[objSel.form.elements[arrCarFields[0]].selectedIndex].value;
// Variante updaten
updateModell(objSel.form, autos[strMarke][objSel.options[objSel.selectedIndex].value], 2);
}
//-->
</script>
</head>
<body onload="init(document.cars.elements[arrCarFields[0]]);">
<div>
<form name="cars" action="verify.jsp" method="post">
<fieldset id="formDefault"><legend>Allgemeine Angaben</legend>
<label>Vorname:</label><input type="text" name="username" value="" style="margin-left:5em;" />
<br />
<label>Nachname:</label><input type="text" name="userLname" value="" style="margin-left:5em;" />
<br />
<label>Plz:</label><input type="text" name="zipcode" value="" style="margin-left:5em;" />
<br />
<label class="aktAutoMarkeModell">gggggggggg:</label>
<select name="aktAutomarke" id="automarke" style="width:210px;margin-left:5em;" onChange="showModell(this);">
<option value="" selected="selected" style="width:180px;"></option>
</select>
<br />
<label class="aktAutoMarkeModell">ffffffffsdfsd:</label>
<select name="autoModell" id="automodellA" style="width:210px;margin-left:5em;" onChange="showVariante(this);">
<option value="" selected="selected" style="width:180px;"></option>
</select>
<br />
<label class="aktAutoMarkeModell">yyyyyyyyyyyyyyy:</label>
<select name="autoVariante" id="neuesAutoMarke" style="width:210px;margin-left:5em;">
<option value="" selected="selected" style="width:180px;"></option>
</select>
<br /><br />
<input type="Submit" value="Hier losfahren" style="clear:right;width:120px;height:25px;font-weight:bold;margin-top:-20px;margin-left:327px;">
</fieldset>
</form>
</div>
</body>
</html>