rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[Ajax] liste déroulante dynamique 2 résultats

Posté par btobnet, le mardi 8 avril 2008 à 11:04:59
Bonjour,

je développe un intranet de gestion. j'ai trouvé un script ,qui fonctionne trés bien, permettant de lié deux listes déroulante :
1-le script
<script type="text/javascript">
	/**
	 * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
	 */
	function sendData(param, page)
	{
		if(document.all)
		{
			//Internet Explorer
			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
		}//fin if
		else
		{
		    //Mozilla
			var XhrObj = new XMLHttpRequest();
		}//fin else

		//définition de l'endroit d'affichage:
		var content = document.getElementById("contenu");
		//var content2 = document.getElementById("contenu2");
		XhrObj.open("POST", page);

		//Ok pour la page cible
		XhrObj.onreadystatechange = function()
		{
			if (XhrObj.readyState == 4 && XhrObj.status == 200)
				content.innerHTML = XhrObj.responseText ;
		}

		XhrObj.setRequestHeader('Content-Type','application/x-www-­form-urlencoded');
		XhrObj.send(param);
	}//fin fonction SendData

    </script> 

2- le code des listes
$user="root";
$host="localhost";
$password="";
$database="DEMDEV";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
       
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
    
// Séléction de tous les enregistrements de la table Catégorie
////////////////////////////////////////////////////////////­////////
$rq="Select * from groupe where sommeil_group='n' and action_group='o' and logistic_group<>'Y' order by nom_group;";
$result= mysql_query ($rq) or die ("Select impossible");
?>
<form method='POST' action='saisdetdemnew.php3?id_dmd=<?php echo $id_dmd?>' name="formulaire"> 
<select size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')"­ onKeyUp="sendData('id='+this.value,'liresc.php')" style="font-size:0.84em">
<?php
echo "<option value=0> </option>";     
while ($dt=mysql_fetch_row($result)){
        // Remplir la liste déroulante des catégorie	
        echo "<option value=".($dt[0]).">".($dt[1])."</o­ption>";
        if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
?>    
</select>

// affichage des sous-catégorie appartenant à la première catégorie.
////////////////////////////////////////////////////////////­///////////////
echo "<span id=\"contenu\"><select size='1' name='souscat' style=\"font-size:0.84em\">"; 
echo "<option value=0> </option>";   
$rq="Select * from demandeur where group_dem=".$j." ;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{ 
         echo "<option value=".$dt[0].">".$persDb1->nom_persge­n." </option>";
} 
echo "</select></span>";

Partie que j'aimerais gérer	
	
echo "<span id=\"contenu2\"><select size='1' name='reqinfo_detdem' style=\"font-size:0.84em\">";
//print("<SELECT NAME=\"reqinfo_detdem\" style=\"font-size:0.84em\">"); 
	
print("<OPTION VALUE=\"0\"> --- </OPTION> 
	");
					
$ezine_db=ezine_connecte_db();
$sqlreqinfo = "SELECT A.id_reqinfo, A.nom_reqinfo, B.group_reqinfogroup FROM reqinfo as A, reqinfogroup as B where B.reqinfo_reqinfogroup=A.id_reqinfo and B.group_reqinfogroup=".$j." and sommeil_reqinfo<>'Y' order by nom_reqinfo asc";
$resreqinfo = mysql_query($sqlreqinfo,$ezine_db) or ezine_mysql_die();
$i=0;
while($reqinfoDb =mysql_fetch_object($resreqinfo))
{
      print("
     <OPTION VALUE=\"$reqinfoDb->id_reqinfo\">$reqinfoDb-­>nom_reqinfo </OPTION>");
		
}
print ("</SELECT></span>");


3-page traitement lresc.php
header('Content-type: text') ; // on déclare ce qui va être afficher
 
// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
   
       echo "<select size='1' name='souscat'>";
       $user="root";
       $host="localhost";
       $password="";
       $database="DEMDEV";
       $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");   
       mysql_select_db($database,$connexion);
    	
       $rq="Select * from demandeur where group_dem=".$_POST['id'].";";
       $result= mysql_query ($rq) or die ("Select impossible");
       // $i = initialise le variable i
      $i=0;
      while ($dt=mysql_fetch_row($result))
       { 	
		 	
          echo "<option value=".utf8_encode($dt[0]).">".utf8_encod­e($persDb1->nom_persgen)."  </option><br>";
			
        }
       echo "</select>";
}    



voila pour le code, les deux listes imbriqués marche trés bien, ce que j'aimerais faire c'est que lorsque je choisit un élément de ma première liste, non seulement ma deuxieme liste réagisse mais qu'en plus la troisieme liste réagisse sur le même événement. Je ne sait pas comment adapter le script.
exemple:
j'ai trois tables : département, ville, fleuve.
Quand je choisit un département dans la liste 1, la liste des villes du département se met dans la liste 2 et les fleuves traversant le département se place dans la liste 3.
il n'y a pas d'interaction entre les listes 2 et 3 .

voila mon pb.
merci d'avance pour votre aide.
cordialement
Configuration: Windows XP
Internet Explorer 7.0
Répondre à btobnet  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marcellin, le mardi 8 avril 2008 à 11:18:12
le supercopier2 ne marche pas sur mon vista home edition familliale
Répondre à marcellin

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 btobnet, le mardi 8 avril 2008 à 17:21:51
je pense que ce message n'a rien a faire ici
désolé
Répondre à btobnet
Logiciels pertinents trouvés dans les téléchargements
Télécharger Ma Liste d'Achats  2.01Ma Liste d'Achats - Faire les courses est une tâche bien compliquée pour les non initiés. Ma liste d'achats est comme son nom l'indique, un...Catégorie: Environnement de travail
Licence: Freeware/gratuit
Télécharger SpaceTime   1.0SpaceTime - Pour plus de fluidité et d'ergonomie dans vos recherches sur le web, en mode interactif, c'est encore mieux. Space Time est...Catégorie: Internet
Licence: Freeware/gratuit
Télécharger SuperCopier 2 beta 1.9SuperCopier 2 - SuperCopier est un gestionnaire de copie de fichiers libre pour Windows, proposant des fonctionnalités non couvertes par le...Catégorie: Gestion de fichiers
Licence: Freeware/gratuit
Télécharger Foobar 2000 0.9.5.4Foobar 2000 - Foobar2000 est un lecteur audio avancé pour les plateformes Microsoft Windows. Son interface graphique est volontairement...Catégorie: Lecteurs audio
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [Ajax] liste déroulante dynamique 2 résultats »