Se connecter / S'enregistrer
Votre question

Listes liees php

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
4 Avril 2011 17:07:47

bonjour,
jaimerais avoir un code qui maffiche 2listes deroulantes liees en php sachant que l a1ere affiche la liste des wilaya a partir dune bd sqlserver et la seconde affiche la liste des communes relatives a la wilaya choisit en 1ere liste, le pb qui se pose est que la 1ere liste saffiche corrctement mais la seconde saffiche vide si vous avez une idee du pb ca me serait tres utile car je galere depuis un moment merci bcq
voici mon code


  1. <?php
  2.  
  3. require_once('conn.php');
  4. if(isset($_POST['captchaResult']))
  5. {
  6. session_start(); }
  7. ?>
  8. <html>
  9. <head>
  10. <title>Document sans titre</title>
  11. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  12. <script language="JavaScript" type="text/javascript">
  13. List = new Array();
  14. function Remplir(valeur){
  15. var sel="";
  16. sel ="<select size='1' name='souscat'>";
  17. // Parcourir le tableau
  18. for (var i=0;i<List.length;i++)
  19. {
  20. // tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
  21. if (List[i][1]==valeur)
  22. {
  23. // Ajouter une rubrique sous-catégorie au variable SEL
  24. sel= sel + "<option value="+List[i][0]+">"+List[i][2]+"</option>";
  25. }
  26.  
  27. }
  28. sel =sel + "</select>";
  29. // Modifier le DIV scat par la nouvelle List à partir du variable SEL
  30. document.getElementById('scat').innerHTML=sel;
  31. }
  32.  
  33. </script>
  34.  
  35. </head>
  36.  
  37. <body>
  38. <tr> <td>
  39. <select size="1" name="cat" dir="ltr" OnChange="Remplir(cat.value)">
  40.  
  41. <?php
  42. // Paramètres de la Connexion à la base MYSQL
  43.  
  44. $i=0; // variable de test
  45. $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
  46.  
  47.  
  48. // Séléction de tous les enregistrements de la table Catégorie
  49. $query=odbc_exec ($sqlconnect,"SELECT * FROM wilaya order by id_wilaya");
  50.  
  51. while(odbc_fetch_into($query,$row))
  52. {
  53.  
  54. // Remplir la liste déroulante des catégorie
  55. echo "\t\t<option value=".($row[0]).">".($row[1])."</option>";
  56. if ($i==0) { $j=$row[0]; $i=1; } // garder la valeur du premier enregistrement
  57. }
  58.  
  59. // Séléction de tous les enregistrements de la table Sous-Catégorie
  60. $query=odbc_exec ($sqlconnect,"SELECT * FROM commune order by id_com");
  61.  
  62. while(odbc_fetch_into($query,$row))
  63. {
  64. // $i = initialise le variable i
  65. $i=0;
  66. while (odbc_fetch_row($query))
  67. {
  68. // Remplir le tableau (array) en javascript
  69. // ex : List[1]=new Array (1,1,"Sous-catégorie 1");
  70. // ex : List[2]=new Array (2,1,"Sous-catégorie 2");
  71. echo "<script>List[".$i."] = new Array(".($row[0]).",".($row[1]).",'".($row[2])."');</script>";
  72. $i=$i+1; // Incrémentation de $i
  73. }
  74. echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
  75. } // des sous-catégories en utilisant la valeur j
  76. ?>
  77. </select>
  78. </td></tr>
  79. <tr>
  80. <td width="">
  81. <div id="scat" dir="ltr">
  82. <select size="1" name="souscat" dir="ltr">
  83. </select>
  84. </div>
  85. </td></tr>
  86. </body>
  87. </html>



sachant que ma table wilaya contient 2 champs : wilayalib et id_wilaya et la table commune contient les champs suivant :
comlib,id_com,id_wilaya

merci bcq a vous

Autres pages sur : listes liees php

a c 232 L Programmation
4 Avril 2011 18:00:14

Salut,

Ton script est appelé à l'intérieur d'un <select>
m
0
l
a c 145 L Programmation
4 Avril 2011 21:03:17

A mon avis, une petite erreur:
  1. <select size="1" name="cat" dir="ltr" OnChange="Remplir(cat.value)">

Ca devrait être:
  1. <select size="1" name="cat" dir="ltr" onChange="Remplir(this.options[this.selectedIndex].value);">

m
0
l
5 Avril 2011 12:23:59

bonjour; je vous remerci de me repondre , je viens de remplacer par onChange="Remplir(this.options[this.selectedIndex].value);">
et jai tjr le meme probleme qui persiste pourtant le code sexecute corretement sur une base my sql.
merci je vais revoir encore

m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS