begin process at 2012 05 29 09:13:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Javascript

 > 

Archives

 > 

AU SECOURS !!!

 > 

Listes déroulantes avec AJAX


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Listes déroulantes avec AJAX

vendredi 24 février 2006 à 09:34:11 | Listes déroulantes avec AJAX

dam_37

Salut à tous!
Je réalise un formulaire dont 3 listes déroulantes sont dépendantes l'une de l'autre, je vous explique:
J'ai un champ (channel), en sélectionnant se champ, je fais une requete sur ma liste de références pour n'afficher que celles appartenant au channel.
Quand je chosis une référence, je dois alors, dans une autre liste, faire une requête pour n'afficher que les champs dont la référence est celle de la précédente liste.

Pour actualiser mes listes, j'ai utilisé de l'AJAX et de l'XMLHTTPRequest.
j'arrive à faire marcher l'interractivité entre 2 listes mais pas entre les 3, càd la 1ère et la 2ème ou la 2ème et la 3ème ms pas les trois.

Quelqu'un saurait si une autre méthode que l'ajax serait préférable ou comment pouvoir faire fonctionner les 3.
Voici mon code:

formulaire.php
    <TD><span id='produits'><select name="ref" id='produits' onchange="change_pk();">
     <option value=''>------------------------------</option>
     <?  
       $res = mysql_query("SELECT * FROM produits ORDER BY ref");
       while($valeur = mysql_fetch_assoc($res)) 
       {
       echo "<option value= ".$valeur["id_prod"];
       if($id_prod==$valeur["id_prod"]) echo ' selected  ';
       echo ">".$valeur["ref"]."</option>";
       }
     ?>

    <TD><span id='package'><select name="pk">
      <option value=''>------------------------------</option>
      <?
       $requete = "SELECT distinct pk FROM package order by pk";
       requete_liste_deroul($requete,$pk,'pk');
      ?>
      </select>
      </span>

    
<TD><select name="ch" id='channelprod' onchange="change_ref();">
      <option value=''>---------------------</option>
      <?
       $res = mysql_query("SELECT * FROM channelprod ORDER BY ch");
       while($valeur = mysql_fetch_assoc($res)) 
       {
       echo "<option value= ".$valeur["id_ch"];
       if($id_ch==$valeur["id_ch"]) echo ' selected  ';
       echo ">".$valeur["ch"]."</option>";
       }
      ?>
   </select>


menu.js:
function change_ref()
{
 getXhr();
 xhr.open("POST","change_ref.php",true);
 xhr.onreadystatechange = function(){
  if(xhr.readyState == 4 && xhr.status == 200){
  document.getElementById("produits").innerHTML =xhr.responseText;
  }
 }

 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 sel = document.getElementById('channelprod');
 idchannel = sel.options[sel.selectedIndex].value;
 xhr.send("id_ch="+idchannel);
}

change_ref.php
<select name='ref'><option value=''>------------------------------</option>
 <? 
  $id_ch=$_POST["id_ch"];
  $_SESSION['id_ch']=$id_ch;
  $ref=$_SESSION['ref'];

   $res = mysql_query("SELECT ref FROM produits WHERE id_ch='$id_ch' ORDER BY ref");
   while($valeur = mysql_fetch_assoc($res)) 
   {
       echo "<option value= ".$valeur["ref"];
       if($ref==$valeur["ref"]) echo ' selected  ';
       echo ">".$valeur["ref"]."</option>";
   }
?>
</select>


Voilà, si vous savez, à vous les mecs!
merci d'avance
dam-37

samedi 25 février 2006 à 14:02:27 | Re : Listes déroulantes avec AJAX

coucou747

Administrateur CodeS-SourceS
Salut,


change_ref.php
<select name="ref"><option value="">------------------------------</option>
 <?php
  $id_ch=$_POST['id_ch'];
  $_SESSION['id_ch']=$id_ch;
  $ref=$_SESSION['ref'];
   $res = mysql_query('SELECT ref FROM produits WHERE id_ch="'.$id_ch.'" ORDER BY ref') or die('ERREUR SQL ligne : '.__LINE__.mysql_error(););
   while($valeur = mysql_fetch_assoc($res)) 
   {
       echo '<option value= '.$valeur['ref'];
       if($ref==$valeur['ref']) echo ' selected  ';
       echo '>'.$valeur['ref'].'</option>';
   }
?>
</select>

Bon, j'ai fais que corriger des imperfections, et non ton problème... sinon, il doit te manquer un session_start();...

envoi nous des sources javascript et non des sources php, sinon, tu t'es trompé de forum...

pour vérifier tes valeurs :
remplace :
 xhr.send("id_ch="+idchannel);

par :

alert(id_channel);
 xhr.send("id_ch="+idchannel);

Bonne chance: )

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
lundi 27 février 2006 à 09:17:56 | Re : Listes déroulantes avec AJAX

dam_37

Salut,
AJAX signifie Asynchronous Javascript and XML et c'est la méthode que j'utilise.
Je pense donc que le meilleur forum pour poser ma question, c'est javascriptfr et non phpcs mais si quelqu'un connais un forum plus adéquate pour ma question, je le veux volontiers! j'ai tout de même scruté les forums quelques heures avant de poser ma question et j'avoue que ce sujet n'est pas très redondant.

Merci sinon pour t'es correction, c'est toujours utile.
J'utilise un session_start(); je ne mets pas l'intégralité du code pour pas allourdir la page.
je vais tester le alert().
merci @+

dam-37


Cette discussion est classée dans : valeur, id, echo, ref, xhr


Répondre à ce message

Sujets en rapport avec ce message

recuperation données AJAX [ par corsamobile ] Bonjour à tous,J'ai créé une liste deroulante liée avec trois listes deroulantes qui vont chercher leurs données dans une BDD.En selectionnant une ref [AJAX] Lier deux listes déroulantes [ par beegeezzz ] Salut les développeurs,J'aimerais créer une page avec 4 listes déroulantes liées.J'ai une première liste déroulante qui s'alimente correctement, je ne Barre de progression et XMLHTTPRequest [ par FredChut ] Salut a tous,Bravo au forum qui m'aide a fabriquer du code quand je n'y arrive pas tout seul !Je suis en train de créer un site qui, entre autres, m'a Rafraichir la page via choix dans liste [ par pasdie ] Bonjour à tous,Voilà mon problème :J'ai une page PHP contenant deux listes.Ma première liste est remplie via une requete sur mon serveur (je possède E Liste liée - Formulaire [ par onylink ] Bonjour, J'essai de liées des listes dans un formulaire, mais après mon choix rien ne se passe.. Mais je n'ai pas d'erreur.. Page appelante :<pre clas Pb style.visibility sous Php [ par jpsoniag ] Bonjour, Je suis débutant en Php. J'ai suivi les infos du siteduzero pour essayer de créer un truc assez simple. Je vais en base rechercher des joueu récurération de la valeur d'une cellule d'un tableau créer dynamiquent à partir d'une base de données [ par brandon ] Bonjour, alors voila mon problème :je crée un tableau à partir d'une base de données mysql de la façon suivante :$requete="SELECT * FROM intervention if [ par kenny18 ] Salut à tous,mon problème n'est toujours pas résolu !!!J'affiche sur une page le contenu d'une table. J'ai un bouton sur lequel je clique je veux pouv [DOM]Conserver une valeur après ajout d'un child [ par malalam ] Hello,le titre n'est pas super clair parce que je ne savais pas comment résumer.J'appelle une fonction sur un évènement (onchange d'un select : bref, l'id de l'input... [ par Teclis01 ] voilà j aimerais changer la couleur de la case sur laquelle l'utilisateur pointe.chaque case est crée dans une boucle ou son id est unique La question


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales