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

  FORUM HardWare.fr
  Programmation
  PHP

  Listes déroulantes liées entre elles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Listes déroulantes liées entre elles

n°1597747
sabbahh
Posté le 09-08-2007 à 15:53:32  profilanswer
 

Je cherche un code qui affiche des résultats dans la 2éme liste selon le choix fait au première. c'est un vrai casse tête.
Pour commencer, je me connecte à ma BDD, après ça se complique.
Pourriez vous m'aider??

mood
Publicité
Posté le 09-08-2007 à 15:53:32  profilanswer
 

n°1597767
e-deby
Posté le 09-08-2007 à 16:10:08  profilanswer
 

le plus simple c'est d'utiliser un petit bout d'Ajax, appelé sur un onChange de la premiere liste

n°1597768
PunkRod
Digital Mohawk
Posté le 09-08-2007 à 16:12:59  profilanswer
 

ça dépend du nombre d'entrées dans chacune des listes, tu peux aussi générer des variables javascripts, et tout faire en javascript directement.

n°1597769
sabbahh
Posté le 09-08-2007 à 16:13:29  profilanswer
 

wi j'ai vu ça..
mais je veux bien avoir une trame d'un script..

n°1597770
e-deby
Posté le 09-08-2007 à 16:13:41  profilanswer
 

PunkRod a écrit :

ça dépend du nombre d'entrées dans chacune des listes, tu peux aussi générer des variables javascripts, et tout faire en javascript directement.


 
si y'a 100 choix à 50 sous-entrées chacun, je te raconte pas le code dans ta page  [:el awrence xi]

n°1597785
sabbahh
Posté le 09-08-2007 à 16:23:09  profilanswer
 

non je me connecte à ma BDD pour remonter les infos..

n°1598107
Zopieux
Posté le 10-08-2007 à 11:48:58  profilanswer
 

sabbahh a écrit :

wi j'ai vu ça..
mais je veux bien avoir une trame d'un script..


Tu vas , tu cherches le tuto sur Ajax, et tu t'amuses !
 
A+

n°1598112
sabbahh
Posté le 10-08-2007 à 11:54:47  profilanswer
 

je m'amuse grave t'inkiét lol :s
Effectivement, là j'ai trouvé un script ajax pour les listes liées même avec ça j'affiche pas ce que je veux dans ma 2éme liste :(

n°1598113
durkheim
Posté le 10-08-2007 à 11:55:38  profilanswer
 

Details or there is no problem.

n°1598115
e-deby
Posté le 10-08-2007 à 11:57:43  profilanswer
 

traceurs, tests, toussa...

mood
Publicité
Posté le 10-08-2007 à 11:57:43  profilanswer
 

n°1598118
sabbahh
Posté le 10-08-2007 à 12:02:34  profilanswer
 

Details!
j'ai l'impression que ce bout de code est faut (vu que je suis une vrai débutante en ajax)
sel = document.getElementById('liste1');
Id = sel.options[sel.selectedIndex].value;
xhr.send("Id="+Id)
(dc dans ma 2éme page, j'apel ce Id avec la méthode post => $_POST['Id']

n°1598119
sabbahh
Posté le 10-08-2007 à 12:03:49  profilanswer
 

je suis exactement cette trame:
http://siddh.developpez.com/articles/ajax/#LIV-A
mais aparemment je remplace mal mes données

n°1598527
pot2yaourt
Posté le 11-08-2007 à 10:34:56  profilanswer
 

Salut,
 
Tout est très bien expliqué ici : http://toutjavascript.com/savoir/xmlhttprequest.php3
Tu veras c'est assez simple. Et si tu veux améliorer ton code "Ajax", je conseille de lire cet article : http://www.webpasties.com/xmlHttpRequest/
Tous les exemples de code sont téléchargeables.
 
A+
Lionel.

n°1600976
sabbahh
Posté le 20-08-2007 à 10:41:50  profilanswer
 

En fait, j'ai compris un peu le code.. c'est juste que mes tables ne contiennent pas des ID (key auto increment) mes des ID de type varchar, du coup le code ne marche pas. il accept que les chiffres, est normal?

n°1601448
sabbahh
Posté le 20-08-2007 à 22:37:13  profilanswer
 

Prob résolu.. la requete était mal écrite

n°1601693
sabbahh
Posté le 21-08-2007 à 13:47:26  profilanswer
 

Encore un autre problème :s
là j'arrive à lier 2 listes, mais j'ai trop de mal à ajouter une 3éme.
help plz

n°1601698
e-deby
Posté le 21-08-2007 à 13:57:53  profilanswer
 

ben faut comprendre le code, le généraliser, et adapter.

n°1601703
sabbahh
Posté le 21-08-2007 à 14:08:51  profilanswer
 

j'ai bo essayé mais rien.. :(

n°1601802
sabbahh
Posté le 21-08-2007 à 16:02:58  profilanswer
 

PLZ HELP!!! je souhaite ajouter une 3éme liste, et je sais pas exactement où insérer le code
Ma 1ere page:

Code :
  1. <html>
  2. <head>
  3. <title></title>
  4. <script type='text/javascript'>
  5.   function getXhr(){
  6.       var xhr = null;
  7.       if(window.XMLHttpRequest)
  8.       xhr = new XMLHttpRequest();
  9.       else if(window.ActiveXObject){ // Internet Explorer  
  10. try {
  11.         xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  12.      } catch (e) {
  13.      xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  14.      }
  15. }
  16.       else { // XMLHttpRequest non supporté par le navigateur  
  17.       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  18.      xhr = false; }
  19.      return xhr;
  20. }
  21. function go(){
  22.    var xhr = getXhr();
  23.    xhr.onreadystatechange = function(){
  24.    if(xhr.readyState == 4 && xhr.status == 200)
  25.    { leselect = xhr.responseText;
  26. document.getElementById('sousCat').innerHTML = leselect;
  27. }} xhr.open("POST","ListLP.php",true);
  28. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  29. sel = document.getElementById('articles');
  30. code = sel.options[sel.selectedIndex].value;
  31. xhr.send("code="+code);}
  32. </script> </head>
  33. <body> <form>
  34. <fieldset style="width: 800px">
  35. <label>list1 :</label>
  36. <select name='articles' id='articles' onchange='go()'>
  37. <option align='center' value='-1'>- - -Selectionner- - -</option>
  38. <? mysql_connect("localhost","root","" );
  39. mysql_select_db("xxx" );
  40. $res = mysql_query("SELECT * FROM list1" );
  41. while($row = mysql_fetch_assoc($res)){
  42. echo "<option value='".utf8_encode($row["nom"])."'>".utf8_encode($row["nomGr"])."</option>";}?>
  43. </select>
  44. <div id='sousCat' style='display:inline'>
  45. </div>
  46. </fieldset></form> </body>
  47. </html>


ma 2éme page:

Code :
  1. <?php
  2. if(isset($_POST["code"]))
  3. {
  4.  $Scode=$_POST["code"];
  5.  mysql_connect("localhost","root","" );
  6.  mysql_select_db("xxx" );
  7.   $sql  = "SELECT code,nom FROM list ";
  8.                           $sql .= "WHERE nom='".$_POST["code"]."'";
  9.                           $sql .= "ORDER BY nom";
  10.   
  11.  $res = mysql_query($sql);
  12.  if (mysql_num_rows($res)>0)
  13.  {
  14.  echo"<option value='-1'>Tous les sousCats</option>";
  15.  while($row = mysql_fetch_assoc($res)){
  16.  echo "<option value='".utf8_encode($row["code"])."'>".utf8_encode($row["nom"])."</option>";
  17.  }
  18.  }
  19.  else {echo"<option value='-1'>Pas de SScat disponible</option>";}
  20. }
  21. echo"</select>";
  22. ?>


Message édité par sabbahh le 21-08-2007 à 16:36:48
n°1602975
sabbahh
Posté le 23-08-2007 à 14:36:35  profilanswer
 

merci quand même. j'ai trouvé une autre solution..

n°1813258
amel001
Posté le 18-11-2008 à 09:49:59  profilanswer
 

sabbahh a écrit :

merci quand même. j'ai trouvé une autre solution..


 
je vous explique  
en php  
une table contient les villes
une table contient les les communes de chaque ville
et une table contrient les quartiers de chaque communes
 
je veux quand je choisi dans la liste ville, ça me donne dans la 2eme liste les communes de ce pays, et quand je choisi une commune de cette 2eme liste ça me donne dans la 3eme liste les quartiers de cette commune .  
Biensure les villes commune  et quartiers se trouvent dans une base de donnée (3tables)
SVP si vous pouvez m'envoyer le code j'ai un travail urgent  
mon mail b_amel_z@hotmail.fr
merci

n°1813397
Alisteroid
Posté le 18-11-2008 à 13:47:50  profilanswer
 

Mais bien sur  [:xam hot] , j'ai du ménage chez moi tu peux venir le faire?

n°1813424
amel001
Posté le 18-11-2008 à 14:17:24  profilanswer
 

sabbahh a écrit :

merci quand même. j'ai trouvé une autre solution..


 
 
j'ai fait ce code d'aprés ce lien http://siddh.developpez.com/articles/ajax/#LIV-A
de deux liste  
il ne marche pas:

Code :
  1. CREATE TABLE `auteur` (
  2.   `id` tinyint(4) NOT NULL auto_increment,
  3.   `nom` varchar(50) NOT NULL,
  4.   PRIMARY KEY  (`id`)
  5. );
  6. insert into `auteur` values
  7. (1,'Clive Cussler'),
  8. (2,'Harlan Coben'),
  9. (3,'Franck Herbert'),
  10. (4,'Pierre Bordages');
  11. CREATE TABLE `livre` (
  12.   `id` tinyint(4) NOT NULL auto_increment,
  13.   `titre` varchar(50) NOT NULL,
  14.   `idAuteur` tinyint(4) default NULL,
  15.   PRIMARY KEY  (`id`)
  16. ) ;
  17. insert into `livre` values
  18. (1,'Odyssee',1),
  19. (2,'Sahara',1),
  20. (3,'Dragon',1),
  21. (4,'Une chance de trop',2),
  22. (5,'Ne le dis a personne',2),
  23. (6,'Disparu à jamais',2),
  24. (7,'Dune',3),
  25. (8,'La barriere de santaroga',3),
  26. (9,'Les guerriers du silence',4),
  27. (10,'La citadelle hyponeros',4),
  28. (11,'Terra mater',4);


 
le fichier auteur.php

Code :
  1. <html>
  2. <head>
  3.  <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
  4.  <script type='text/javascript'>
  5.   function getXhr(){
  6.                                 var xhr = null;
  7.    if(window.XMLHttpRequest) // Firefox et autres
  8.       xhr = new XMLHttpRequest();
  9.    else if(window.ActiveXObject){ // Internet Explorer  
  10.       try {
  11.                   xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  12.               } catch (e) {
  13.                   xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  14.               }
  15.    }
  16.    else { // XMLHttpRequest non supporté par le navigateur  
  17.       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  18.       xhr = false;
  19.    }
  20.                                 return xhr;
  21.   }
  22.   /**
  23.   * Méthode qui sera appelée sur le click du bouton
  24.   */
  25.   function go(){
  26.    var xhr = getXhr();
  27.    // On défini ce qu'on va faire quand on aura la réponse
  28.    xhr.onreadystatechange = function(){
  29.     // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
  30.     if(xhr.readyState == 4 && xhr.status == 200){
  31.      leselect = xhr.responseText;
  32.      // On se sert de innerHTML pour rajouter les options a la liste
  33.      document.getElementById('livre').innerHTML = leselect;
  34.     }
  35.    }
  36.    // Ici on va voir comment faire du post
  37.    xhr.open("POST","ajaxLivre.php",true);
  38.    // ne pas oublier ça pour le post
  39.    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  40.    // ne pas oublier de poster les arguments
  41.    // ici, l'id de l'auteur
  42.    sel = document.getElementById('auteur');
  43.    idauteur = sel.options[sel.selectedIndex].value;
  44.    xhr.send("idAuteur="+idauteur);
  45.   }
  46.  </script>
  47. </head>
  48. <body>
  49.  <form>
  50.   <fieldset style="width: 500px">
  51.    <legend>Liste liées</legend>
  52.    <label>Auteurs</label>
  53.    <select name='auteur' id='auteur' onchange='go()'>
  54.     <option value='-1'>Aucun</option>
  55.     <?
  56.      mysql_connect("localhost","root","root" );
  57.      mysql_select_db("test" );
  58.      $res = mysql_query("SELECT * FROM auteur ORDER BY nom" );
  59.      while($row = mysql_fetch_assoc($res)){
  60.       echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
  61.      }
  62.     ?>
  63.    </select>
  64.    <label>Livres</label>
  65.    <div id='livre' style='display:inline'>
  66.    <select name='livre'>
  67.     <option value='-1'>Choisir un auteur</option>
  68.    </select>
  69.    </div>
  70.   </fieldset>
  71.  </form>
  72. </body>
  73. </html>


 
le fichier Ajaxlivre

Code :
  1. <?php
  2. echo "<select name='livre'>";
  3. if(isset($_POST["idAuteur"])){
  4.  mysql_connect("localhost","root","root" );
  5.  mysql_select_db("test" );
  6.  $res = mysql_query("SELECT id,titre FROM livre
  7.   WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre" );
  8.  while($row = mysql_fetch_assoc($res)){
  9.   echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
  10.  }
  11. }
  12. echo "</select>";
  13. ?>


 
ou est le probleme ici
 
 
 
 

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Listes déroulantes liées entre elles

 

Sujets relatifs
Access - Liste déroulantes Dépendantes ...[RESOLU]/[ACCESS]disparition de liste déroulantes sur formulaires
Listes en python : IndexError: list index out of range Hmmm3 listes déroulantes interconectées
ti-83+ ; listeslistes déroulantes l'une HTML l'autre PHP
listes déroulantesProbleme de Listes déroulantes liées
4 Listes déroulantes liées avec accès MySQL 
Plus de sujets relatifs à : Listes déroulantes liées entre elles


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