IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[PHP-JS] Création d'une liste déroulante en javascript à partir d'un tableau php


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Points : 19
    Points
    19
    Par défaut [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 : 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".

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Points : 19
    Points
    19
    Par défaut
    Le dernier code se trouve dans le <body> pas dans le <head>.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2012, 13h13
  2. Réponses: 11
    Dernier message: 11/03/2008, 09h35
  3. Réponses: 4
    Dernier message: 21/09/2006, 14h58
  4. [PHP-JS] changement d'une liste déroulante
    Par maraly dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2006, 14h53
  5. Réponses: 5
    Dernier message: 13/10/2005, 10h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo