Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
876 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  liste dynamique php associé a une base de données mysql [RESOLU]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

liste dynamique php associé a une base de données mysql [RESOLU]

n°2004871
Tribalnana​sss
Posté le 25-06-2010 à 18:00:00  profilanswer
 

Bonjour à tous !
 
Etant nouvelle dans le monde de javascript, j'ai essayé de mettre dans une première une liste déroulante les champs de mes tables, puis, de faire apparaitre dans une deuxième liste toutes les valeurs correspondantes à ce champs lorsque la sélection de la première change mais sans grand succès...
 
Grâce à mon code, j'ai réussi à récuperer tout les champs dans la première liste, mais lors du changement de sa valeur, aucune autre liste déroulante n'apparait :??:  
 
Je vous montre donc mon code en espérant que vous pourrez m'aider :
 

Code :
  1. <?php
  2. echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n" );
  3. ?>
  4. <html  xml:lang="fr" >
  5. <head>
  6. <script type="text/javascript" src="./arrayPHP2JS.js" charset="iso_8859-1"></script>
  7. <script type="text/javascript" src="./changeValeur.js" charset="iso_8859-1"></script>
  8.  
  9. <title> Base de données ARECOFA </title>
  10. </title>
  11. <br/><br/><u><font size=+50 color=seagreen> <center> Test : </center></font></u>
  12. <br/><br/><br/><br/>
  13. <?php
  14. $link=mysql_connect("localhost", "root", "" ) OR die('Erreur de connexion');
  15. mysql_select_db("arecofa" );
  16. $req=mysql_query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='produit' or TABLE_NAME='fabricant'" ) or die ("requete impossible" );
  17. $champs=array();
  18. while ($row = mysql_fetch_array($req))
  19.  {//echo "colonne : $row[0] <br/>";
  20.  if ($row[0] != "num_fabricant" and $row[0] != "num_de_produit" and $row[0] != "photo" )
  21.   {$recherche=mysql_query("select $row[0] from produit, fabricant " );
  22.   $id = 0;
  23.   $temoin_t=0;
  24.   $temoin=array();
  25.   //echo "champs : <br/>";
  26.   while($ligne = mysql_fetch_assoc($recherche))
  27.    {$p = $row[0];
  28.    $v = $ligne[$row[0]];
  29.    //echo "$v <br/>";
  30.    $b=0;
  31.    foreach ($temoin as $cle => $val)
  32.     {if ($val == $v)
  33.      {$b=1;
  34.      }
  35.     }
  36.    if ( $b==0 and $temoin_t==0)
  37.     {$champs[$p]=array();
  38.     $champs[$p][0]=$row[0];
  39.     $champs[$p][1] = array();
  40.     $champs[$p][2] = array();
  41.     $temoin_t=1;
  42.     }
  43.    if ($b==0)
  44.     {$champs[$p][1][$id] = $v;
  45.     $champs[$p][2][$id] = $ligne[$row[0]];
  46.     $id++;
  47.     $temoin[] = $v;
  48.     }
  49.    }
  50.   }
  51.  }
  52.  $chaine = htmlspecialchars(serialize($champs), ENT_QUOTES);
  53.  ?>
  54.  <script type="text/javascript">
  55.  /* <![CDATA[ */
  56.  <!--
  57.  /*
  58.  * Ici, on transmets la chaîne sérialisée à JavaScript  
  59.  * pour la transformer en tableau indexé JavaScript  
  60.  */
  61.  var tableau = new PhpArray2Js('<?php echo $chaine; ?>');
  62.  var tab = tableau.retour();
  63.  // -->
  64.  /* ]]> */
  65.  </script>
  66. </head>
  67. <body style="background:lightgreen" link=darkgreen vlink=green>
  68.  <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgprod">
  69.  <legend>Sélectionnez un champs</legend>
  70.  <select name="champs" id="champs" onchange="changeValeur(tab,this.value);">
  71.    <option value="vide">- - - Choisissez un champs - - -</option>
  72.   <?php
  73.   /* Construction de la première liste : on se sert du tableau PHP */
  74.   $nbr = count($champs);
  75.   foreach($champs as $nr => $nom)
  76.    {
  77.    ?>
  78.    <option value="<?php echo($nr); ?>"><?php echo($nr); ?></option>
  79.    <?php
  80.    }
  81.   ?>
  82.  </select>
  83.   <span id="blocValeur"></span><br />
  84.   <input type="submit" name="ok" id="ok" value="Envoyer" />
  85.  </form>
  86. </body>
  87. </html>


 
puis mon fichier javascript :

Code :
  1. /* On crée la fonction qui va construire la seconde liste déroulante */
  2. function changeValeur(tab, champs)
  3. {
  4.     if(champs != "vide" )
  5.     {
  6.     /* On compte les départements de cette région */
  7.     var nbd = tab[champs][1].length;
  8.     var form_d  = '<select name="valeur" id="nom_valeur">';
  9. form_d  += '<option value="vide">- - - Choisissez une valeur - - -</option>';
  10.     for(var j = 0;  j < nbd; j++)
  11.     {
  12.  if (tab[champs][1][j] != undefined)
  13.   {form_d += '  <option value="'+ tab[champs][1][j] +'">'+ tab[champs][2][j] +'<\/option>';
  14.   }
  15.     }
  16.     form_d += '<\/select>';
  17.     }
  18.     else
  19.     {
  20.         form_d = "";
  21.     }
  22.     document.getElementById("blocValeur" ).innerHTML = form_d;
  23. }


 
Merci à ceux qui sont arrivé à me lire jusqu'ici, si vous avez des réponses... :)


Message édité par Tribalnanasss le 05-07-2010 à 14:05:17
mood
Publicité
Posté le 25-06-2010 à 18:00:00  profilanswer
 

n°2007090
Tribalnana​sss
Posté le 05-07-2010 à 11:44:27  profilanswer
 

Personne ??? :(

n°2007134
Tribalnana​sss
Posté le 05-07-2010 à 14:03:32  profilanswer
 

Je pense avoir résolu mon problème :
 
Il semblerai que les espaces que contiennent les champs que j'ai mis dans le tableau php empêche sa transcription en javascript


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  liste dynamique php associé a une base de données mysql [RESOLU]

 

Sujets relatifs
exporter données à partir d'excel vers une table access[VB/Excel]Comparer liste excel avec liste de fichiers
[Resolu] Probleme image en bordure de bloc !sql 2008 messagerie de base de données
Création formulaire de recherche très simple depuis données excel[C] passage par adresse de chaines de caracteres (résolu)
VBA et Excel aller chercher des données sur d'autres fichiers 
Plus de sujets relatifs à : liste dynamique php associé a une base de données mysql [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR