Bonjour à tous!
Je souhaite faire une liste liées a une premiere.
J'alimente correctement la 1ere liste et prend les bons paramètres, puis je l'envoie a mon script.
voici mon code php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
<select name="theme" id="nom_theme" onchange="changeDept(tab,this.value);">
<option value="vide">- - - Choisissez un thème - - -</option>
<?php
/* Construction de la première liste : on se sert du tableau PHP */
$nbr = count($ssrep);
foreach($ssrep as $nr => $nom)
{
?>
//ce serait la qu'on recupere la valeur du 1er tableau
<option value="<?php echo($nr); ?>"><?php echo($nr); ?></option>
<?php
}
?>
</select>
<!-- ICI, le secret : on met un bloc avec un id ou va s'insérer le code de
la seconde liste déroulande -->
<span id="blocDepartements"></span><br />
<input type="submit" name="ok" id="ok" value="Envoyer" />
</fieldset>
</form> |
voici ce qui est dans les paramètres de changedept:
changeDept("{"AGRICULTURE":{"1":"/N_AGRI_ENVIRONNEMENT","2":"/N_AGRI_ALIMENTAIRE","3":"/N_EXPLOITATION_ELEVAGE ","4":"/N_PARCELLAIRE_AGRICOLE ","5":"/N_SANTE_ANIMALE","6":"/N_SANTE_VEGETALE ","7":"/N_ZONAGES_AGRICOLES "},"AIR_CLIMAT":{"8":"/N_CHANGEMENT_CLIMATIQUE","9":"/N_METEO"}}", "AIR_CLIMAT")
ou le 1er parametre est un tableau javascript, et le 2eme parametre est l'indice (cad "AIR_CLIMAT").
Et enfin voici mon script changeDept.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| /* On crée la fonction qui va construire la seconde liste déroulante */
function changeDept(tab,idr)
{
if(idr != "vide")
{
/* On compte les sousrep de ce thème */
var nbd = tab[idr].length;
var nom = tab[idr].first();
var i = tab[idr].indexOf(nom);
var form_d = '<select name="sousreps" id="sousreps">';
for(var j = i ;j < nbd + i; j++)
{
form_d += ' <option value="'+ j +'">'+ tab[idr][j] +" ("+ j +')<\/option>';
}
form_d += '<\/select>';
}
else
{
form_d = "";
}
document.getElementById("blocDepartements").innerHTML = form_d;
} |
et je suis rembarré a chaque fois car firebug me dit
tab[idr] is undefined
nbd = tab[idr].length;\n
pourquoi mon tableau n'est-il pas défini???
Partager