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 : 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
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 : 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
<?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 : Sélectionner tout - Visualiser dans une fenêtre à part
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".