[PHP-JS] Création d'une liste déroulante en javascript à partir d'un tableau php
Bonjour,
j'essaie de créer une liste déroulante personnalisée à partir d'un tableau que je remplis à l'aide d'une requête en php. Je me suis basé sur la source "Conversion d'un tableau PHP de dimension N en tableau JavaScript" que j'ai adaptée (et rectifiée d'ailleurs). Voici mon code :
- dans le head de la page :
Code:
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 28 29
| <?php // création du tableau JS à partir du tableau PHP
$monTableauPHP = array("Plongee", "Planche");
echo "<script type='text/javascript'>";
construisTableauJS($monTableauPHP, "monTableauJS");
echo "document.write(monTableauJS.toSource());";
echo "</script> ";
?>
<SCRIPT language=javascript> // Script création tableau
<!--
function CreeTableau()
{
this.length = CreeTableau.arguments.length
for (var i = 0; i < this.length; i++)
this[i+1] = CreeTableau.arguments[i]
}
var LibelleOption = new CreeTableau(monTableauJS);
var CibleURL = new CreeTableau("plongee.html", "planche.html");
function AllerA(form)
{
i = form.SelectMenu.selectedIndex;
if (i == 0) return;
parent.location.href = CibleURL[i+1];
}
// -->
</SCRIPT> |
- voici la fonction php construisTableauJS() que j'inclue à la page :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?php
function construisTableauJS($tableauPHP, $nomTableauJS)
{
echo $nomTableauJS." = new Array();";
for($i = 0; $i < count($tableauPHP); $i++)
{
if(!is_array($tableauPHP[$i]))
{
echo $nomTableauJS."[".$i."] = '".$tableauPHP[$i]."';";
}
else
{
construisTableauJS($tableauPHP[$i], $nomTableauJS."[".$i."]");
}
}
return;
}
?> |
- et dans le head de la page :
Code:
1 2 3 4 5 6 7 8 9 10
| <SCRIPT>
document.write("<FORM>");
document.write("<SELECT NAME='SelectMenu' onChange='AllerA(this.form)'>");
Nombre = LibelleOption.length;
for (var i = 1; i <= Nombre; i++)
document.write("<OPTION>" +LibelleOption[i]);
document.write('</SELECT>');
document.write('</FORM>');
// -->
</SCRIPT> |
Le problème c'est que la liste déroulante créee possède un seul choix et c'est "Plongee,Planche" alors que je voudrai 2 champs "Plongee" et "Planche".