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

  FORUM HardWare.fr
  Programmation
  PHP

  2 listes déroulantes liés javascript+phpmysql+ajax

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

2 listes déroulantes liés javascript+phpmysql+ajax

n°1873027
roy mustan​g
Posté le 14-04-2009 à 23:32:07  profilanswer
 

Bonjour,
je voudrais concevoir 2 listes déroulantes liés dont le contenu est des données php mysql la première contient le nom de matière première l'attribut des_mat_pre issu de cette table
 

Code :
  1. #
  2. # Structure de la table `matiere_premiere`
  3. #
  4. CREATE TABLE matiere_premiere (
  5.   code_mat_pre int(20) NOT NULL auto_increment,
  6.   des_mat_pre varchar(20) NOT NULL default '',
  7.   code_four varchar(20) NOT NULL default '',
  8.   PRIMARY KEY  (code_mat_pre,code_four)
  9. ) TYPE=MyISAM;


 
et la deuxième liste qui va selon la jointure de la clé(code_mat_pre) afficher les type de matière première l'attribut des_typ_mat_pre
 

Code :
  1. #
  2. # Structure de la table `type_matiere_premiere`
  3. #
  4. CREATE TABLE type_matiere_premiere (
  5.   code_typ_mat_pre int(20) NOT NULL auto_increment,
  6.   des_typ_mat_pre varchar(20) NOT NULL default '',
  7.   code_mat_pre varchar(20) NOT NULL default '',
  8.   couleur varchar(20) NOT NULL default '',
  9.   PRIMARY KEY  (code_typ_mat_pre,code_mat_pre)
  10. ) TYPE=MyISAM;


 
donc en effet vu qu'on peut pas appeler par un événement javascript du contenu phpmysql j'ai du me concentrer sur l'ajax pour trouver un script qui le permet et voici le lien ou j'ai trouvé un
http://siddh.developpez.com/articles/ajax/#LIV-A
j'ai essayé de l'appliquer le mieux que possible mais c'est seulement le contenu de ma première liste qui s'est affiché
voici mon code pour la première page
 

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('typ_mat_pre').innerHTML = leselect;
  34.     }
  35.    }
  36.    // Ici on va voir comment faire du post
  37.    xhr.open("POST","ajaxtypematierepremiere.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('mat_pre');
  43.    code_mat_pre = sel.options[sel.selectedIndex].value;
  44.    xhr.send("code_mat_pre="+code_mat_pre);
  45.   }
  46.  </script>
  47. </head>
  48. <body>
  49.  <form action="liste déroulante.php" method="post">
  50.   <fieldset style="width: 500px">
  51.    <legend>Liste liées</legend>
  52.    <label>matiere premiere</label>
  53.    <select name='mat_pre' id='mat_pre' onchange='go()'>
  54.     <option value='-1'>Aucun</option>
  55.     <?
  56.      mysql_connect("localhost","root","" );
  57.      mysql_select_db("art-mania" );
  58.      $res = mysql_query("SELECT distinct des_mat_pre FROM matiere_premiere ORDER BY des_mat_pre" );
  59.      while($row = mysql_fetch_assoc($res)){
  60.       echo "<option name='des_mat_pre' value='".$row["des_mat_pre"]."'>".$row["des_mat_pre"]."</option>";
  61.      }
  62.     ?>
  63.    </select>
  64.    <label>type matière première</label>
  65.    <div id='des_typ_mat_pre' style='display:inline'>
  66.    <select name='typ_mat_pre'>
  67.     <option value='-1'>Choisir une matière première</option>
  68.    </select>
  69.    </div>
  70.   </fieldset>
  71.  </form>
  72. </body>
  73. </html>


 
 
et ma deuxième page ajaxtypematierepremiere.php
 

Code :
  1. <?php
  2. echo "<select name='typ_mat_pre'>";
  3. if(isset($_POST["code_mat_pre"])){
  4.  mysql_connect("localhost","root","" );
  5.      mysql_select_db("art-mania" );
  6.  $res = mysql_query("SELECT * FROM type_matiere_premiere,matiere_premiere
  7.   WHERE type_matiere_premiere.code_mat_pre=".$_POST["code_mat_pre"]." ORDER BY des_typ_mat_pre" );
  8.   while($row = mysql_fetch_assoc($res)){
  9.   echo "<option value='".$row["des_typ_mat_pre"]."'>".$row["des_typ_mat_pre"]."</option>";
  10.  }
  11. }
  12. echo "</select>";
  13. ?>


 
 
donc voila c'est complexe et je conjure votre aide merci :((((((((((((((((

mood
Publicité
Posté le 14-04-2009 à 23:32:07  profilanswer
 


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

  2 listes déroulantes liés javascript+phpmysql+ajax

 

Sujets relatifs
[Resolu]Firefox Fonction Javascript replace fonctionne pas[Résolu] Ajax, XMLhttpRequest, interrogation multiples et simultannées
Variable PHP en JavascriptVariable PHP en Javascript
Javascript : pb avec des Frames (résolu)Aide pour création menu javascript / CSS
[javascript]multi clic sur le même bouton (avec Jquery)[Résolu] Cacher, afficher une ligne de tableau <TR> en Javascript
aide javascript onclickListes dépendantes
Plus de sujets relatifs à : 2 listes déroulantes liés javascript+phpmysql+ajax


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