Avatar billede tankbilligt.dk Nybegynder
27. februar 2004 - 12:21 Der er 3 kommentarer og
1 løsning

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 ?
Avatar billede jakoba Nybegynder
27. februar 2004 - 15:42 #1
Du har rodet med dit problem i flere dage. Så du ved præcis hvas det handler om.

Det gør jeg ikke. alt hvad jeg kan se er et langt script der gør gud hved hvad og et spørgsmål jeg ikke forstår. Hvis jeg var hyperaktiv ville jeg måske sætte mig til at nærlæse hver linie i scriptet og så prøve at gætte, gætte, gætte på hvad det er du ønsker at gøre. Men jeg er for doven.

Prøv om ikke du kan formulere spørgsmålet så det er lidt nemmere at forstå.

mvh JakobA
Avatar billede tankbilligt.dk Nybegynder
27. februar 2004 - 15:55 #2
Javascriptet laver 2 <select>'s hvor indholdet i det andet afgøres af hvad man vælger i den første...

det første <select> bliver hentet fra MySQL, men mit problem ligger i hvordan jeg skal få hentet det fra MySQL (studier) ind, da denne jo bestemmes af klasse

man vælger en klasse, hvorefter den skal finde de tilhørende studier...

Javascript kan ikke sætte et mysql kald igang, og derfor skal det gemmes i nogle forskellige arrays eller noget i den stil...

hvordan gøres dette ?
Avatar billede jakoba Nybegynder
27. februar 2004 - 16:08 #3
Here er nok det nærmeste eksempel jeg lige har med hånden:
  http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp107085.html
Avatar billede tankbilligt.dk Nybegynder
16. marts 2004 - 21:20 #4
tak for hjælpen.... lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester