Bonjours, j'ai écrits une fonction PHP qui transmet un tableau à Javascript en le remplissant. Puis place dans un select(2) une partie du tableau quand le select(1) change. Cependant, Mon navigateur (Internet Explorer) m'indique une erreur :
Ligne: 26
Caractère: 11
Erreur: 'randsr[...].length' a la valeur Null ou n'est pas un objet.
Code: 0
Ma fonction php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function listrayonsrayon()
{
 
require("identsql.php");
mysql_connect($dbhost,$dbuser,$dbpass) or die("La Connexion a échouée");
 mysql_select_db($dbbase) or die("La Base $dbbase n'existe pas");
  $requete="SELECT nom,rayon FROM m_srayon ORDER BY rayon ASC";
 $result=mysql_query($requete);
 $p=mysql_result($result , 0 , "rayon");
 $o=mysql_num_rows($result);
 $q=0;
 $r=0;
 for($i=0;$i<$o;$i++)
     {
    if(mysql_result($result , $i , "rayon")!=$p)
        {
        $q=0;
        $r++;
        $p=mysql_result($result , $i , "rayon");
        } 
    echo "\n randsr[".$r."][".$q."] ='".mysql_result($result , $i , "nom")."'; \n randr[".$r."] = '".mysql_result($result , $i , "rayon")."'; \n";
    $q++;
 
    }
mysql_close();
}
Mon code javascript qui est entre mes balises head:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script language="javascript">
var randsr= new Array();
var randr= new Array();
<?php listrayonsrayon(); ?>
function mlrsr()
{
var lavaleurr= document.getElementById('leraayon').options[document.getElementById('leraayon').selectedIndex].value;
for (var i=0; i<randr.length; i++)
    {
    if(randr[i]==lavaleurr) lavaleurr = i;
    }
 
 
for (i=0; i < randsr[lavaleurr].length; i++)
{ 
document.getElementById('lesraayon').options[i] = new Option(randsr[lavaleurr][i]);
}
}
</script>
Et mes select du formulaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<select name="leraayon" onchange="mlrsr()" id="leraayon">
          <?php listrayon() // creer des options et fonctionne bien?>
 
        </select>
 
<select name="lesraayon" id="lesraayon">
        </select>
Quand j'affiche la page dans mon navigateur et que j'affiche le code source il me donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script language="javascript">
var randsr= new Array();
var randr= new Array();
 
 randsr[0][0] ='Pantalon'; 
 randr[0] = 'Coté Femme'; 
 
 randsr[1][0] ='Ballerines & Mocasins'; 
 randr[1] = 'Espace Chaussure'; 
 
 randsr[2][0] ='Pantalon'; 
 randr[2] = 'Espace Homme'; 
function mlrsr()
{
var lavaleurr = document.getElementById('leraayon').options[document.getElementById('leraayon').selectedIndex].value;
for (var i=0; i<randr.length; i++)
    {
    if(randr[i]==lavaleurr) lavaleurr = i;
    }
 
 
for (i=0; i < randsr[lavaleurr].length; i++)
{ 
document.getElementById('lesraayon').options[i] = new Option(randsr[lavaleurr][i]);
}
}
</script>
Je ne vois pas d'où vient l'erreur, PHP faire bien sont travail. Mais Javascript ...???