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 :
- 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
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>
- 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
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; } ?>
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".
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>
Partager