fejl i script når det blandes med php
Jeg har samlet scriptet:<?
echo'
<script language="javascript" type="text/javascript">
var arr = [';
$v_klasser = mysql_query("SELECT * FROM klasser where klasse !='' order by klasse");
$komma_kla=0;
$antal_kla = mysql_num_rows($v_klasser);
while($klasser = mysql_fetch_array($v_klasser)){
echo"['$klasser[klasse]'";if($komma_kla<=$antal_kla){echo",";}echo"[";
$v_studier = mysql_query("SELECT * FROM studie");
$antal_stu = mysql_num_rows($v_studier);
$komma_stu=0;
while($studier = mysql_fetch_array($v_studier)){
echo"
['$studier[studie]$antal_kla']
";
$komma_stu++;
if($komma_stu<$antal_stu){echo",";}
}
$komma_kla++;
if($komma_kla<$antal_kla){echo"]],";}else{echo"]]";}
}
?>
];
//alert(arr1[1][1])
function initSels(){
createOpts(document.getElementById('sel1'));
createOpts(document.getElementById('sel3'));
}
function createOpts(sel){
var s = new Array();
var num = 0, txt = "arr";
var ar = opt = null;
var n = sel.selectedIndex;
var args = createOpts.arguments.length;
for(var i=1;args>i;i++){
s[i-1] = document.getElementById(createOpts.arguments[i]);
if(s[i-1]==sel)num=i;
}
if(args>1){
if(s[num])sel = s[num];
else return;
}
if(n==0&&args>1){
for(i=num;args>i+1;i++){
s[i].length = 0;
opt = document.createElement('OPTION');
s[i].appendChild(opt);
opt.value = "";
opt.text = "\74-- Vælg --";
}
return true
};
for(i=0;num>i;i++){
txt+="["+(s[i].selectedIndex-1)+"][1]";
}
ar = eval(txt);
sel.length = 0;
opt = document.createElement('OPTION');
sel.appendChild(opt);
opt.value = "";
opt.text = "-- Vælg --";
for(i=0;ar.length>i;i++){
opt = document.createElement('OPTION');
sel.appendChild(opt);
if(typeof ar[i] == 'object'){
opt.value = ar[i][0];
opt.text = ar[i][0];
}else{
opt.value = ar[i];
opt.text = ar[i];
}
}
if(args>num+2){
for(i=num+1;args-1>i;i++){
s[i].length = 0;
opt = document.createElement('OPTION');
s[i].appendChild(opt);
opt.value = "";
opt.text = "-- Vælg --";
}
}
}
</script>
</head>
<body style="FONT-SIZE: 12px" onload="initSels()">
<form name="sels" action="">
To afhængige selects:
<select name="sel1" id="sel1" onchange="createOpts(this,'sel1','sel2');">
<option value="" selected>Vis alle</option>
</select>
<select name="sel2" id="sel2">
<option value="" selected>-- Vælg --</option>
</select>
<input name='submit' type='submit' value='Send'>
</form>
Men jeg har et problem... i andet select skal kun studier tilhørende den forrige klasse vises... hvordan fixes dette, evt. vha nogle arrays til hver klasse, der så indlæses alt efter hvilken klasse der vælges ?
