Liste déroulante alternative suivant une autre (b avec BD sql)

Liste déroulante alternative suivant une autre (b avec BD sql) - HTML/CSS - Programmation

Marsh Posté le 31-08-2003 à 13:01:59    

Bonjours  
 
Voila, j'ai une table de donnée sql avec un certains nombres de groupes de musiques, je les affiches en liste déroulante, our ca no pb. ar contre, j'aimerai mettre en dessous une autre liste déroulante our leurs albums. J'aimerai que suivant le groupe choisi, la liste déroulante des albums varie (normal), mais je ne voit aps comment faire, il me semlble que c en JS que l'on peut y parvenir ?  
 
Je vous remercie !  
A bientot


Message édité par rainckill le 31-08-2003 à 14:41:02
Reply

Marsh Posté le 31-08-2003 à 13:01:59   

Reply

Marsh Posté le 31-08-2003 à 13:05:33    

Reply

Marsh Posté le 31-08-2003 à 13:06:47    

Merci beaucoup !

Reply

Marsh Posté le 31-08-2003 à 23:54:44    

Code :
  1. <html>
  2. <head>
  3. <script language="JavaScript" type="text/javascript">
  4. /*** Creation d'un tableau a deux dimensions ***/
  5. generationListe = new Array();
  6. generationListe[0] = '';
  7. generationListe[1] = new Array("Tomate", "Poireau", "Patate" );
  8. generationListe[2] = new Array("Banane", "Orange" );
  9. generationListe[3] = new Array("Poulet", "Dinde" );
  10. generationListe[4] = new Array("Rouge", "Vert", "Bleu" );
  11. generationListe[5] = new Array("France", "Russie" );
  12. /*** Une variable globale qui stocke le choix précédent de la liste ***/
  13. var generationChoixA;
  14. /*** fonction pour generer la liste B ***/
  15. function generationChangerListeB(leForm)
  16. {
  17.       var B = leForm.generationListeB;
  18.       var taille = B.options.length;
  19.       /*** Suppression des options présentes ***/
  20.       for(var i=1; i < taille ; i++)
  21.       {
  22.             B.options[1] = null;
  23.       }
  24.       /*** Ajout des nouvelles options ***/
  25.       for(var i=0; i < generationListe[generationChoixA].length; i++)
  26.       {
  27.             var opt = new Option(generationListe[generationChoixA][i]);
  28.             B.options[B.options.length] = opt;
  29.       }
  30.       B.focus();
  31. }
  32. </script>
  33. </head>
  34. <body>
  35. <?
  36. include("config.php" );
  37. ?>
  38. <form action="http://www.domaine.com/" method="post">
  39. <?
  40. $sqlg = "SELECT distinct nom from a_groupes ORDER BY nom";
  41. $reqg = mysql_query($sqlg) or die('Erreur SQL !<br>'.$sqlg.'<br>'.mysql_error());
  42. $resg = mysql_numrows($reqg);
  43. ?>
  44. o <i>Album du groupe </i><select name="generationListeA" onchange="generationChoixA=this.selectedIndex; generationChangerListeB(this.form)"><option value='vide'> ------------ Choisissez ------------</option>";
  45. <?
  46. while($resg = mysql_fetch_array($reqg))
  47.     {
  48. PRINT "<option value=\"".$resg["nom"]."\">".$resg["nom"]."</option>";
  49. }
  50. echo "</select>";
  51. ?>
  52. <select name="generationListeB" style="background-color:#FFFFAA">
  53.       <option style="background-color:#DDDD88;">Sélectionnez un sous-thème</option>
  54. </select>
  55. </form>
  56. </body>
  57. </html>


 
 
Avec ce code j'arrive bien a prendre les infos de la remiere liste déroulante dans ma base de donné, mais pour la seconde, j ne voit pas commebt faire our inserer du hp danbs ce code js :
 

Code :
  1. generationListe = new Array();
  2. generationListe[0] = '';
  3. generationListe[1] = new Array("Tomate", "Poireau", "Patate" );
  4. generationListe[2] = new Array("Banane", "Orange" );
  5. generationListe[3] = new Array("Poulet", "Dinde" );
  6. generationListe[4] = new Array("Rouge", "Vert", "Bleu" );
  7. generationListe[5] = new Array("France", "Russie" );


 qui ferai en sorte qu'il prendre les info sur une base de donné aussi, where nom = choix de la premiere liste déroulante  
  :heink:  
 
Quelqu'un peut me venir en aide la  :sweat: ?
 
Merci bcp :)

Reply

Marsh Posté le 31-08-2003 à 23:58:50    

Benh c'est soit tu fais une requête générales avec les possibilité de la liste une et les réponse de la liste deux, sinon, t'es obligé de recharger la page avec omme paramètre la sélection de la liste 1 pour mettre à jour la liste 2

Reply

Marsh Posté le 01-09-2003 à 00:09:12    

RiderCrazy a écrit :

sinon t'es obligé de recharger la page avec omme paramètre la sélection de la liste 1 pour mettre à jour la liste 2


 
et oui, mais c'est surtout ca que je veux éviter :)

Reply

Marsh Posté le 01-09-2003 à 00:11:54    

rainckill a écrit :


 
et oui, mais c'est surtout ca que je veux éviter :)

php: server-side... soit tu prends tout d'un coup, soit tu recharge en faisant une autre requête adapté au choix de l'utilisateur [:spamafote]

Reply

Marsh Posté le 01-09-2003 à 00:13:07    

et ceux qui ont pas Javascript il font comment  :sweat: ?

Reply

Marsh Posté le 01-09-2003 à 11:14:03    

RiderCrazy a écrit :

Benh c'est soit tu fais une requête générales avec les possibilité de la liste une et les réponse de la liste deux


 
mmmh, je vois as tellement ce que tu veuc dire, êt même si je vois un eu, je vois vraiment pas comment mettre du php dans le code js...  
 

Code :
  1. generationListe[5] = new Array("France", "Russie" );

je eux remplacer "("France", "Russie" )" par uen variable php ? il me semble que cela :  

Code :
  1. generationListe[5] = new Array(<? echo "$choix1"; ?>

ne soit aps très correct :/
 
 

Citation :

et ceux qui ont pas Javascript il font comment  :sweat: ?


 
Comment ça ?

Reply

Marsh Posté le 01-09-2003 à 16:56:27    

Ben vouais certaines entreprises désactive Javascript pour des raisons de sécurité. Ptet que l'infomation date mais j'ai entendu dire que il y avait 10% de navigateurs sans Javascript.

Reply

Sujets relatifs:

Leave a Replay

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