Contenu d'une liste en fonction d'une autre le tout dynamiquement

Contenu d'une liste en fonction d'une autre le tout dynamiquement - HTML/CSS - Programmation

Marsh Posté le 10-04-2006 à 19:04:18    

Bonjour,
J'aimerais afficher une liste en fonction d'une autre sachant que chaque liste à un contenu issu d'une base mysql donc dynamique. Pour cela j'ai trouver un script que voila :
 

Code :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. function ModifierListe(code_item) {
  3. lg = document.frmDemo1.zlItem.length;
  4. // On vide la liste
  5. for (i = lg - 1; i >= 0; i--) {
  6. document.frmDemo1.zlItem.options[i] = null;
  7. }
  8. code_rub = document.frmDemo1.zlRubrique.selectedIndex;
  9. <?php
  10. // Génération des Items par Rubriques
  11. $sql = "SELECT code FROM demo_rubrique ORDER BY code";
  12. $resultat = mysql_db_query($dbName, $sql);
  13. $max_lignes = 0;
  14. $option_max = '';
  15. while ($enr = mysql_fetch_array($resultat)) {
  16. $sql = "SELECT code, item ";
  17. $sql .= "FROM demo_item ";
  18. $sql .= "WHERE code_rub='".$enr[0]."'";
  19. $sql .= "ORDER BY item";
  20. $resultat2 = mysql_db_query($dbName, $sql);
  21. echo " if (document.frmDemo1.zlRubrique.options[code_rub].value == ".$enr[0]." ) {\n";
  22. echo " document.frmDemo1.zlItem.length = ".(mysql_num_rows($resultat2)).";\n";
  23. $cpt = 0;
  24. while ($enr2 = mysql_fetch_array($resultat2)) {
  25. echo " document.frmDemo1.zlItem.options[".$cpt."].value = ".$enr2[0].";\n";
  26. echo " document.frmDemo1.zlItem.options[".$cpt."].text = \"".$enr2[1]."\";\n";
  27. echo " if (code_item == ".$enr2[0]." ) document.frmDemo1.zlItem.options[".$cpt."].selected = true;\n";
  28. $cpt++;
  29. if ($cpt > $max_lignes) $max_lignes = $cpt;
  30. if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
  31. }
  32. echo " }\n";
  33. }
  34. ?>
  35. }
  36. </SCRIPT>
  37. <?php
  38. // ----------------------------------------------------------------------------
  39. // Liste Rubriques
  40. // ----------------------------------------------------------------------------
  41. $sql = "SELECT code, rubrique FROM demo_rubrique ORDER BY rubrique";
  42. $resultat = mysql_db_query($dbName, $sql);
  43. echo "<FORM METHOD=POST NAME='frmDemo1'>";
  44. echo "<BR> <B>Rubriques</B> ";
  45. echo " <SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n";
  46. if (!isset($zlRubrique)) $zlRubrique = - 1;
  47. while ($enr = mysql_fetch_array($resultat)) {
  48. echo "<OPTION VALUE='".$enr[0]."'";
  49. if ($zlRubrique == $enr[0]) echo " SELECTED";
  50. echo ">".htmlspecialchars($enr[1])."</OPTION>\n";
  51. }
  52. echo "</SELECT> \n";
  53. // ----------------------------------------------------------------------------
  54. // Liste Items
  55. // ----------------------------------------------------------------------------
  56. echo " <B>Items</B> ";
  57. echo " <SELECT NAME='zlItem'>\n";
  58. for ($cpt = 0; $cpt < $max_lignes; $cpt++)
  59. echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
  60. echo "</SELECT> \n";
  61. if (!isset($zlItem)) $zlItem = -1;
  62. echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$zlItem." );\n</SCRIPT>\n";
  63. // ----------------------------------------------------------------------------
  64. echo "<INPUT TYPE='submit' VALUE='Valider'>\n";
  65. echo "</FORM>";
  66. // ----------------------------------------------------------------------------
  67. // Résultats des sélections
  68. // ----------------------------------------------------------------------------
  69. echo "Sélection :<BR>\n";
  70. if (isset($zlRubrique) && $zlRubrique != "" ) {
  71. $sql = "SELECT rubrique FROM demo_rubrique WHERE code='".$zlRubrique."'";
  72. $resultat = @mysql_db_query($dbName, $sql);
  73. $enr = @mysql_fetch_array($resultat);
  74. echo "Rubrique = $zlRubrique [$enr[0]]<BR>\n";
  75. }
  76. if (isset($zlItem) && $zlItem != "" && $zlItem != -1) {
  77. $sql = "SELECT item FROM demo_item WHERE code='".$zlItem."'";
  78. $resultat = @mysql_db_query($dbName, $sql);
  79. $enr = @mysql_fetch_array($resultat);
  80. echo "Item = $zlItem [$enr[0]]<BR>\n";
  81. }
  82. ?>


 
Voila ce que ça fait :
http://www.**********/test2.php
 
Jusqu'a maintenant aucuns probléme.
 
J'ai ensuite repris ce script en modifiant uniquement les tables ainsi que les champs en voici le code :
 

Code :
  1. <? include("config.php" ); $dbName ="zestuden"; ?><SCRIPT LANGUAGE="JavaScript">
  2. function ModifierListe(code_item) {
  3. lg = document.frmDemo1.zlItem.length;
  4. // On vide la liste
  5. for (i = lg - 1; i >= 0; i--) {
  6. document.frmDemo1.zlItem.options[i] = null;
  7. }
  8. code_rub = document.frmDemo1.zlRubrique.selectedIndex;
  9. <?php
  10. // Génération des Items par Rubriques
  11. $sql = "SELECT * FROM ze_etablissement ORDER BY nom";
  12. $resultat = mysql_db_query($dbName, $sql);
  13. $max_lignes = 0;
  14. $option_max = '';
  15. while ($enr = mysql_fetch_array($resultat)) {
  16. $sql = "SELECT * ";
  17. $sql .= "FROM ze_etablissement_section ";
  18. $sql .= "WHERE idetablissementcorrespondant='".$enr[0]."'";
  19. $sql .= "ORDER BY nom";
  20. $resultat2 = mysql_db_query($dbName, $sql);
  21. echo " if (document.frmDemo1.zlRubrique.options[code_rub].value == ".$enr[0]." ) {\n";
  22. echo " document.frmDemo1.zlItem.length = ".(mysql_num_rows($resultat2)).";\n";
  23. $cpt = 0;
  24. while ($enr2 = mysql_fetch_array($resultat2)) {
  25. echo " document.frmDemo1.zlItem.options[".$cpt."].value = ".$enr2[0].";\n";
  26. echo " document.frmDemo1.zlItem.options[".$cpt."].text = \"".$enr2[1]."\";\n";
  27. echo " if (code_item == ".$enr2[0]." ) document.frmDemo1.zlItem.options[".$cpt."].selected = true;\n";
  28. $cpt++;
  29. if ($cpt > $max_lignes) $max_lignes = $cpt;
  30. if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
  31. }
  32. echo " }\n";
  33. }
  34. ?>
  35. }
  36. </SCRIPT>
  37. <?php
  38. // ----------------------------------------------------------------------------
  39. // Liste Rubriques
  40. // ----------------------------------------------------------------------------
  41. $sql = "SELECT * FROM ze_etablissement ORDER BY nom";
  42. $resultat = mysql_db_query($dbName, $sql);
  43. echo "<FORM METHOD=POST NAME='frmDemo1'>";
  44. echo "<BR> <B>Rubriques</B> ";
  45. echo " <SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n";
  46. if (!isset($zlRubrique)) $zlRubrique = - 1;
  47. while ($enr = mysql_fetch_array($resultat)) {
  48. echo "<OPTION VALUE='".$enr[0]."'";
  49. if ($zlRubrique == $enr[0]) echo " SELECTED";
  50. echo ">".htmlspecialchars($enr[1])."</OPTION>\n";
  51. }
  52. echo "</SELECT> \n";
  53. // ----------------------------------------------------------------------------
  54. // Liste Items
  55. // ----------------------------------------------------------------------------
  56. echo " <B>Items</B> ";
  57. echo " <SELECT NAME='zlItem'>\n";
  58. for ($cpt = 0; $cpt < $max_lignes; $cpt++)echo "$option_max";
  59. echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
  60. echo "</SELECT> \n";
  61. if (!isset($zlItem)) $zlItem = -1;
  62. echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$zlItem." );\n</SCRIPT>\n";
  63. // ----------------------------------------------------------------------------
  64. echo "<INPUT TYPE='submit' VALUE='Valider'>\n";
  65. echo "</FORM>";
  66. // ----------------------------------------------------------------------------
  67. // Résultats des sélections
  68. // ----------------------------------------------------------------------------
  69. echo "Sélection :<BR>\n";
  70. if (isset($zlRubrique) && $zlRubrique != "" ) {
  71. $sql = "SELECT * FROM ze_etablissement WHERE idetablissement='".$zlRubrique."'";
  72. $resultat = @mysql_db_query($dbName, $sql);
  73. $enr = @mysql_fetch_array($resultat);
  74. echo "Rubrique = $zlRubrique [$enr[0]]<BR>\n";
  75. }
  76. if (isset($zlItem) && $zlItem != "" && $zlItem != -1) {
  77. $sql = "SELECT * FROM ze_etablissement_section WHERE idetablissement_section='".$zlItem."'";
  78. $resultat = @mysql_db_query($dbName, $sql);
  79. $enr = @mysql_fetch_array($resultat);
  80. echo "Item = $zlItem [$enr[0]]<BR>\n";
  81. }
  82. ?>


 
Et voila ce que ça me fait :
http://www.**********/test.php
 
Si quelqu'un à la solution ça me sauverai bien la vie !
 
J'espère que mon topic est assez clair et précis.
 
Merci d'avance pour vos aides,
Alexandre


Message édité par Alexandre58 le 23-04-2006 à 12:53:47
Reply

Marsh Posté le 10-04-2006 à 19:04:18   

Reply

Marsh Posté le 11-04-2006 à 13:56:30    

Up!

Reply

Marsh Posté le 11-04-2006 à 14:18:36    

Tu lances ta page, tu ouvres la console javascript de FF et tu as :


Erreur : unterminated string literal
Fichier source : http://www.*****.net/test.php
Ligne : 56, Colonne : 44
Code source :
 document.frmDemo1.zlItem.options[6].text = "Science de l'information & de la communication


et  

Erreur : ModifierListe is not defined
Fichier source : http://www.*****.net/test.php
Ligne : 311


 
Donc tu commences par corriger ces erreurs [:spamafote]
Par ailleurs généralement une page web commence par un doctype, puis une balise html, ensuite une balise head contenant les scripts et le contenu va dans la balise body


Message édité par gilou le 24-04-2006 à 09:00:28
Reply

Marsh Posté le 11-04-2006 à 14:42:10    

ça marche !!
 
Merci beaucoup !
 
Pour l'info il y avait un retour à la ligne au niveau de l'enregistrement Science de l'information & de la communication dans la base de donnée ce qui entraine une erreur dans le script.
 
Encore merci et bonne continuation,
Alexandre.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed