Afhængige Dropdowns med array
HejNu har jeg prøvet at få lavet noget i php men det kan kun virke hvis man reloader siden.. Jeg har så fundet og modificeret lidt i et JavaScript som kan lave de forskellige ting som jeg skal bruge dog med en undtagelse jeg kan ikke få den til at smide de rigtige værdi'er videre til en anden side vedhjælp af PHP..
den bruger array id'en istedet for bil modellens navn..
her neden under har jeg pastet de forskellige scripts osv.
test.html vælger man bilmærke, model og årgang.
model.js er der hvor arrayed og selve scriptet er. Det er her fejlen ligger.. Når man vælger de forskellige ting.. så skriver den bilmærket rigtigt og årgangen.. Men model navnet blir kun til det tal som arrayed er..
altså f.eks. 1 istedet for der skulle stå E30.
Siden kan ses her:
http://apache.fiskeren.dyndns.dk/plasmastyle/test/test.html
test.html:
<code>
<script language="JavaScript" src="model.js"></script>
<form name="choose_2" method="post" action="order2.php">
<div>
<font class="content"><b>Bil Mærke:</b></font><br>
<select name="make" class="browseList" onChange="makeChange('choose_2');">
<option value="error" selected="selected">Vælg</option>
<option value="BMW">BMW</option>
<option value="VW">VW</option>
</select>
</div>
<div>
<font class="content"><b>Model:</b></font><br>
<select name="model" class="browseList" onChange="modelChange('choose_2');">
<option value="error" selected="selected">Vælg</option>
</select>
</div>
<div>
<font class="content"><b>Årgang:</b></font><br>
<select name="year" class="browseList" onChange="yearChange('choose_2');">
<option value="error" selected="selected">Vælg</option>
</select>
</div>
<input type=image src=../data/ordertxt_1.gif name="Action" type="submit" value="Send" style="width:200;border:0px;">
<script>
document.forms.choose_2.model.disabled = true;
document.forms.choose_2.year.disabled = true;
</script>
</form>
</code>
model.js
<code>
var openMenu = "";
var v = new Array();
v[v.length] = Array(1,'BMW','E30','1985','1992');
v[v.length] = Array(2,'BMW','E34','1988','1994');
v[v.length] = Array(3,'BMW','E36','1992','1995');
v[v.length] = Array(4,'BMW','E46','1999','2003');
v[v.length] = Array(504,'VW','Golf III','1999','2003');
var myMake = "";
var myModel = "";
var myYr = "";
function makeChange(choose_form) {
if (!choose_form) { choose_form = "choose"; }
var make = eval("document.forms." +choose_form+ ".make");
var model = eval("document.forms." +choose_form+ ".model");
var yr = eval("document.forms." +choose_form+ ".year");
myMake = "";
myModel = "";
myYr = "";
if (make) {
if (make.value!='') {
model.disabled = false;
model.options.length = 1;
model.options[0] = new Option('Vælg','');
for (i=0; i<=v.length-1;i++) {
if (v[i][1] == make.value) {
model.options[model.options.length] = new Option(v[i][2],v[i][0]);
}
}
}
}
}
function modelChange(choose_form, selected) {
if (!choose_form) { choose_form = "choose"; }
var model = eval("document.forms." +choose_form+ ".model");
var yr = eval("document.forms." +choose_form+ ".year");
var yr1 = 0;
var yr2 = 0;
var count = 0;
if (model && yr) {
yr.disabled = false;
for (i=0; i<=v.length-1;i++) {
if (v[i][0] == model.value) {
yr1 = v[i][3];
yr2 = v[i][4];
}
}
yr.options.length = 1;
yr.options[0] = new Option('Vælg','');
for (i=yr2;i>=yr1;i--) {
yr.options[yr.options.length] = new Option(i,i);
}
}
}
function yearChange(choose_form, v) {
if (!choose_form) { choose_form = "choose"; }
}
function showChooseCar() {
var obj = getObject('changeCar');
obj.style.display = 'none';
var obj = getObject('chooseCar');
obj.style.display = '';
}
</code>
