3 liste deroulante liées PHP/MYSQL/AJAX

1no -  
 Solution -
Bonjour,

j'ai un un problème qui me rend vraiment dingue.
voila j'ai 3 liste déroulante qui sont liée dont les données sont dans une base mysql.
cependant le code fonctionne parfaitement chez moi mais non chez l'hebergeur.
je ne sait pas ce qui peut engendré cela.

j'ai besoins de votre aide
Configuration: Windows XP
Firefox 3.0.3

12 réponses

Résumé de la discussion

Plusieurs utilisateurs discutent de la mise en liaison de trois listes déroulantes dont les données proviennent d'une base MySQL, le problème principal étant que le code fonctionne localement mais pas sur l'hébergeur. En réponse, les messages évoquent des solutions techniques telles que l'utilisation de onchange pour déclencher l'envoi du formulaire, des exemples de code PHP et des références vers des tutoriels externes. D'autres échanges portent sur des difficultés liées à la gestion des valeurs sélectionnées lors des envois répétés, notamment les variables de session et l'effacement des choix après double soumission. Certains participants partagent directement des liens vers des solutions externes et proposent d'adapter l'exemple existant aux trois listes, avec des conseils sur le chargement des listes via AJAX.

Bobot (l'IA à votre service)
  1. bestcalinou
     
    AVIS A LA POPULASSE:

    faut mettre <%php et pas juste <% !!!!!

    Allez, continuez de développer ...

    A+
    THE BOSS
    1
  2. doounia
     
    Bonjour tout le monde,
    est ce que qlq pourrais me donner le code pour les 3 listes liées, je l'ai déja fait avec 2 listes mais je galère pour passer a 3
    Merci d'avance
    1
    1. Solution
       
      Émail adress pour vous envoyer solution
      0
  3. doounia
     
    Salut maguidi,
    moi j'ai trouvé la solution ici:
    https://www.developpez.net/forums/d176592/javascript/ajax/ajax-3-listes-chaine/
    bonne journée
    1
    1. maguidi
       
      merci dounia j vais y jeter un coup d'oeil
      0
    2. maguidi
       
      salut dounia
      J suis allé sur le lien que tu m''a doné mais ça marche pas est que tu peut me poster ton code s'il te plait
      0
    3. doounia > maguidi
       
      Salut Maguidi,
      On faite mon code va t'embrouiller plus,il ne ressemble plus au code sur le lien(c'est la version basic)
      mais te l'envoi si tu le veux
      peux -tu me donner ton adresse mail pour que je puisse t'envoyer mes pages
      0
    4. maguidi > doounia
       
      mon mail c'est diengmaguy@hotmail.fr
      j vais essayer de m débrouiiler avec ton code.
      Merci pour ton aide c'est très gentil de ta part
      0
    5. bigjel Messages postés 1 Date d'inscription   Statut Membre > doounia
       
      slt Dounia,
      stp, peux-tu mettre ton code à la disposition de tous. J'arrive à faire marche le code sur 2 listes mais pas sur 3listes.
      Merci.
      0
  4. serpan2 Messages postés 191 Statut Membre 6
     
    keske tu veux dire par "non chez l'hebergeur" comment elle s'apparait ou tu nous donne le lien vers ton site
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sadigoun
     
    je veux dire que ca ne marche pas chez l'hebergeur.
    le fonctionnement est que normalement la 2ème doit se remplir en fonction de la première
    et la troisième en fonction de la deuxième.
    avec easyphp mon code fonctionne, mais ca ne marche pas chez l'hebergeur.
    0
    1. Amel
       
      bonjour
      j'ais le meme probleme , un travil urgent m'est demandé et je ne sais quoi faire je suis débutante en php
      SVP
      j'ai 3 tables
      1 wilaya
      2 Daira
      3 Commune

      une wilaya contien plusieurs daira
      et une daira contient plusieurs commune

      et je veux les récupere dans 3 liste liées
      SVP aidez moi comment l'avez vous fai soi en php ou easy php SVP
      merci
      0
  7. Chupachups23 Messages postés 74 Statut Membre 18
     
    Je comprend pas la moitié de ce que vous dites mais pour lier des liste déroulante il suffit de mettre :
    onchange='document.forms["choixcat"].submit();'
    

    dans le select.Quand tu changer d'option , ça va envoyer le formulaire .
    0
    1. Amel
       
      bonjour SVP
      je vous explique
      en php
      une table contient les pays
      une table contient les ville de chaque pays
      et une table contrient les communes de chaque villes

      je veux quand je choisi dans la liste pays , ça me donne dans la 2eme liste les ville de ce pays, et quand je choisi une ville de cette 2eme liste ça me donne dans la 3eme liste les communes de cette ville.
      Biensure les pays, villes commune se trouvent dans une base de donnée
      SVP si vous pouvez m'envoyer le code j'ai un travail urgent
      merci
      0
      1. riad > Amel
         
        bonjour ;
        j'amerie savoir si vous avez trouvez une solution pour ce problem
        je cherche une solution pour le même problem
        0
    2. kam
       
      Bonjour;
      je cherche la même solution et je n'y arrive pas! pourriez vous m'envoyer ta solution? pour l'adapté aprés!!!
      voici mon mail: kamail8@yahoo.fr
      un grand merci.
      0
    3. kam
       
      désolé!!! votre solution? j'ai pas fait attention!!!
      0
  8. Chupachups23 Messages postés 74 Statut Membre 18
     
    Je t'enverrais pas le travail tout fait mais c'est simple tu place des " onchange='document.forms["choixpays"].submit();'
    " dans les select , ça enverra le formulaire quand tu changera de choix.
    Donc ca envoie le 1er formulaire , tu récup sur ta bdd les villes de ce pays , tu affiche les ville , tu choisi une ville , ca va envoyer le formulaire , tu récup le nom des communes et tu les affiche .
    0
    1. Amel
       
      bonjour et merci de m'avoir repondre
      j'ai fait ce code d'aprés ce lien https://siddh.developpez.com/articles/ajax/#LIV-A
      de deux liste
      il ne marche pas:
      [code]
      CREATE TABLE `auteur` (
      `id` tinyint(4) NOT NULL auto_increment,
      `nom` varchar(50) NOT NULL,
      PRIMARY KEY (`id`)
      );

      insert into `auteur` values
      (1,'Clive Cussler'),
      (2,'Harlan Coben'),
      (3,'Franck Herbert'),
      (4,'Pierre Bordages');

      CREATE TABLE `livre` (
      `id` tinyint(4) NOT NULL auto_increment,
      `titre` varchar(50) NOT NULL,
      `idAuteur` tinyint(4) default NULL,
      PRIMARY KEY (`id`)
      ) ;

      insert into `livre` values
      (1,'Odyssee',1),
      (2,'Sahara',1),
      (3,'Dragon',1),
      (4,'Une chance de trop',2),
      (5,'Ne le dis a personne',2),
      (6,'Disparu à jamais',2),
      (7,'Dune',3),
      (8,'La barriere de santaroga',3),
      (9,'Les guerriers du silence',4),
      (10,'La citadelle hyponeros',4),
      (11,'Terra mater',4);

      /code

      le fichier auteur.php
      [code]
      <html>
      <head>
      <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
      <script type='text/javascript'>

      function getXhr(){
      var xhr = null;
      if(window.XMLHttpRequest) // Firefox et autres
      xhr = new XMLHttpRequest();
      else if(window.ActiveXObject){ // Internet Explorer
      try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
      }
      }
      else { // XMLHttpRequest non supporté par le navigateur
      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
      xhr = false;
      }
      return xhr;
      }

      /**
      * Méthode qui sera appelée sur le click du bouton
      */
      function go(){
      var xhr = getXhr();
      // On défini ce qu'on va faire quand on aura la réponse
      xhr.onreadystatechange = function(){
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
      if(xhr.readyState == 4 && xhr.status == 200){
      leselect = xhr.responseText;
      // On se sert de innerHTML pour rajouter les options a la liste
      document.getElementById('livre').innerHTML = leselect;
      }
      }

      // Ici on va voir comment faire du post
      xhr.open("POST","ajaxLivre.php",true);
      // ne pas oublier ça pour le post
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      // ne pas oublier de poster les arguments
      // ici, l'id de l'auteur
      sel = document.getElementById('auteur');
      idauteur = sel.options[sel.selectedIndex].value;
      xhr.send("idAuteur="+idauteur);
      }
      </script>
      </head>
      <body>
      <form>
      <fieldset style="width: 500px">
      <legend>Liste liées</legend>
      <label>Auteurs</label>
      <select name='auteur' id='auteur' onchange='go()'>
      <option value='-1'>Aucun</option>
      <?
      mysql_connect("localhost","root","root");
      mysql_select_db("test");
      $res = mysql_query("SELECT * FROM auteur ORDER BY nom");
      while($row = mysql_fetch_assoc($res)){
      echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
      }
      ?>
      </select>
      <label>Livres</label>
      <div id='livre' style='display:inline'>
      <select name='livre'>
      <option value='-1'>Choisir un auteur</option>
      </select>
      </div>
      </fieldset>
      </form>
      </body>
      </html>
      /code

      le fichier Ajaxlivre
      [code]
      <?php
      echo "<select name='livre'>";
      if(isset($_POST["idAuteur"])){
      mysql_connect("localhost","root","root");
      mysql_select_db("test");
      $res = mysql_query("SELECT id,titre FROM livre
      WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
      while($row = mysql_fetch_assoc($res)){
      echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
      }
      }
      echo "</select>";
      ?>
      /code

      ou est le probleme ici
      0
      1. abbescr7 Messages postés 1 Statut Membre > Amel
         
        <option value='-1'>Aucun</option>
        <?php ( a la plce de <? l'erreur ete la)
        mysql_connect("localhost","root","root");
        mysql_select_db("test");
        0
  9. Chupachups23 Messages postés 74 Statut Membre 18
     
    A toi de nous dire hein , y'a beaucoup de ligne , tu as pas plus d'infos ? Messages d'erreur ? Page blanche ? Et je pense que tu cherche quelque chose trop compliqué pour ce que tu souhaite .Utiliser un code que tu comprends pas , quel est l'intérêt ?
    0
    1. Amel
       
      Bonjour et merci de m'avoir répondre
      je suis débuttante en php
      là ou je travail m'ont demandé ce travail
      quand j'ai fait l'execution les listes déroulantes sont vides prkoi?
      0
  10. Tony85 Messages postés 74 Statut Membre 7
     
    Slt alors,

    J'ai voulu réaliser 3 listes déroulantes mise a jour auto mais j'ai eu bocoup de mal mais apres des jorus de taf sa marche.
    Si tu veu je peu t'envoyer sa par mail donc hésite pas a me donné ton mail car mettre sur le forum sa prends pas mal de place.

    Moi ma premiere liste permet de choisir :
    -> une classe la seconde -> un eleves la derniere -> le trimestre

    Apres j'ai une validation avec bouton submit et selon l'eleves choisi tu à sa photo qui apparait avec plei nd'info.

    Tien moi au courant

    TCHOU LES TOPAINS
    0
    1. beegees
       
      Bonjour Tony,

      Je dois faire la même chose que toi, 3 listes déroulantes avec année, cours et type.

      Penses-tu que je pourrais voir ton code ?

      Merci d'avance.

      beegees
      0
    2. Moaaaa
       
      Salut Tony,

      Je suis à peu près sur le même problème que toi et ça fait un moment que je tourne en rond... Pour expliquer en deux mots, j'ai une liste déroulante dans un formulaire qui va checker dans ma base de données.

      L'acquisition des données fonctionne, le seul problème que je rencontre, c'est si je laisse des champs qui ne devraient pas être vides. A ce moment-là, je retourne le formulaire pseudo-complété en lui indiquant que les champs obligatoires ne sont pas tous remplis.

      J'ai mis les variables en variables de session mais si j'appuie deux fois de suite sur le bouton submit pour transmettre le formulaire, il m'efface le contenu du menu déroulant malgré le contrôle du isset().

      Aurais-tu une solution?
      Voici mon code du formulaire, redis-moi si tu veux le code lors de l'acquisition du formulaire.

      P.S. Merci à tous ceux qui pourraient m'aider, cette requête n'est pas exclusive ;-)

      [code]
      echo '<form method="POST" action="Ajout.php">';
      echo '<caption><h2> Données pour le point d\'alimentation </h2></caption>';
      echo '<table border =0><tr bgcolor=#ccccc>';
      echo '<td width=150>Champ</td>';
      echo '<td width=15>Valeur</td></tr>';
      echo '<tr><td>Nom du point d\'alimentation: <sup> (*)</sup></td><td align="center"><input type = "text" name="ptAlim" size="25"';
      if (isset($_SESSION['ptAlim'])) // Si on a le nom entré
      {
      echo 'value="' . $_SESSION['ptAlim'] . '"'; // On pré-remplit le champ
      }
      echo '/></td></tr>';
      echo '<tr><td>Remarques: </td><td align="center"><textarea rows="4" name="remarque" size="25" maxlength="100">';
      if (isset($_SESSION['remarque'])) // Si on a des remarques entrées
      {
      echo $_SESSION['remarque']; // On pré-remplit le champ
      }
      echo '</textarea></td></tr>';

      // Affichage des types d'alimentation
      echo '<tr><td>Type d\'alimentation: <sup> (*)</sup></td>';
      if(isset($_POST['type']) && $_POST['type']!= "" && $_SESSION['type']){
      if (isset($_POST['type']) || $_POST['type']!= ""){
      $_SESSION['type'] = $champType = $_POST['type'];
      }

      } else {
      $champType = '< Choisissez un type >';
      echo '$champtype:' . $champType;
      }
      // test
      if ($_POST['type']!= ""){
      echo '$_POST[type]:' . $_POST['type'];
      }

      $db = new DbTools();
      $db->connexionBase();

      // Affichage des types depuis la table type_alimentation
      $type='<td><select name="type">' ;
      $type.='<option value="'.'">'. $champType .'</option>';
      $requeteSQL="SELECT DISTINCT type_ali FROM type_alimentation";
      $resultat = mysql_query($requeteSQL);
      while ($donnees = mysql_fetch_object($resultat))
      {
      //la concatenation des champs se fait ici
      $type.='<option value="'.$donnees->type_ali.'">'.$donnees->type_ali.'</option>';
      }
      echo $type . '</select></td>';

      echo '<tr><td colspan="2" align="left"><input type="submit" value="Envoyer">';
      echo '<input type="submit" name="resetValues" value="Remise à zéro" />';
      echo '<tr><td><sup> (*)</sup>: champs obligatoires</td></tr>';
      echo '</form>';
      /code
      
          
      0
    3. charlot63
       
      Bonjour,
      Comme beaucoup d'autres j'ai ce problème de liaison avec des listes déroulantes.
      Si vous voulez bien me transmettre votre solution cela me ferait gagner du temps même si je dois faire quelques adaptations avec le contenu des listes.
      Merci et cordialement.

      charlophil63@yahoo.fr
      0
    4. D@Mp!L
       
      Salut Tony,

      moi aussi j'ai le même problème.

      merci de m'envoyer la solution sur mon e-email: <gras>d.hassanidrissi@gmail.com</gras>

      à très bientôt.
      0
    5. hiddouche Messages postés 28 Statut Membre
       
      slt je suis entrains de programer une seance pour une ecole je veut que vous m'aider pour la realisation de cette page j'ai 7 liste deroulante en ordre(semestre, jours , heure , salle, prof , groupe , matiere ) je veut realiser cette page a l'aide de ajax/mysq/php mais je trouve du soucis quand la page depasse 2 liste deroulante

      merci de m'envoyer votre reponse sur mon email = hiddouche_simo@hotmail.fr
      0
  11. Tony85 Messages postés 74 Statut Membre 7
     
    Ouais sans souci mais le probleme ces que sa fait quand meme 5 page

    Une page Connexion.php

    Une page Liste.php

    Une page ValideListe1.php

    Une page ValideListe2.php

    Une page ValideListe3.php

    Le plus important ce sont tes requetes SQL

    Envoi ton mail et je t'envoi tout sa

    TCHOU

    PS : Moi j'ai un souci avec autre chose mais je vais posé un Post qui s'appelle ( Liste Déroulante + Submit ) essaye d'aller faire un tour tu pourra peut etre m'aidé
    0
    1. AMEL01
       
      BONJOUR

      merci BCP voila mon email
      amelchance@hotmail.com
      0
    2. débutantephp
       
      Bonjour Tony85,

      Je souhaite lier trois listes déroulantes avec du PHP, mais je n'y arrive pas.
      J'ai pu le faire avec deux listes mais pas avec trois.
      Pourrais-tu m'envoyer ta solution stp, à l'adresse suivante:

      hazar_2002dz@yahoo.fr

      et merci
      0
    3. idriss
       
      bonjour je souhait faire une tel exemple sur mon projet

      alors voici mon mail idriss860137@hotmail.com

      merci
      0
  12. Tony85 Messages postés 74 Statut Membre 7
     
    Pense à mettre ton probleme en résolu si les listes on marché pour toi

    BYE BYE
    0
  13. maguidi
     
    Bonjour,
    SVP est ce que quelqu'un pourrait m'envoyer le code sur les 3 listes déroulantes liées, moi oci je dois faire 4 listes déroulantes liées et ça fait deux mois que je tourne en rond, j'arrive pas à le faire, je n'ai pu le faire qu'avec deux listes. Je suis vraiment désespéré.
    0