[Ajax] Listes deroulantes

dubuducu Messages postés 395 Statut Membre -  
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour,
est-ce que quelqu'un peut m'aider, je me perds dans ma fonction ...
<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('sous_categorie').innerHTML = leselect;
					}
					var lg=document.getElementById('sous_categorietest').options.length
					if (lg ==1){
						go2();
					}
				}

				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxsouscat.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('categorie');
				idcategorie = sel.options[sel.selectedIndex].value;
				xhr.send("idCategorie="+idcategorie);
			}


			}
			function go2(){
				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('thematique_projet').innerHTML = leselect;
					}
				}

				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxthemprojet.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('sous_categorietest');
				idsous_categorie = sel.options[sel.selectedIndex].value;
				xhr.send("idSous_categorie="+idsous_categorie);
			}
		</script>
	</head>
	<body>
		<form id="superform">

			<fieldset style="width: 500px">
				<legend>Liste liées</legend>
				<label>Catégories</label>
				<select name='categorie' id='categorie' onchange='go()'>
					<option value='-1'>Aucun</option>
					<?php
						$res = mysql_query("SELECT DISTINCT categorie FROM devis_table GROUP BY categorie ORDER BY categorie");
						while($row = mysql_fetch_assoc($res)){
							echo "<option value='".$row["categorie"]."'>".$row["categorie"]."</option>";
						}
					?>
				</select>
				<label>Sous-catégories</label>
				<div id='sous_categorie' style='display:inline'>
				<select name='sous_categorie' id='sous_categorietest' onchange='go2()'>
					<option value='-1'>Choisir une catégorie</option>
				</select>
				</div>
				<label>Thématique projet</label>
				<div id='thematique_projet' style='display:inline'>
				<select name='thematique_projet' >
					<option value='-1'>Choisir une sous-catégorie</option>
				</select>
				</div>
			</fieldset>


ajaxsouscat.php
<?php
	include ('bdd.php');
	echo "<select name='sous_categorie' id='sous_categorietest'>";
	if(isset($_POST["idCategorie"])){
		$res = mysql_query("SELECT DISTINCT sous_categorie FROM devis_table WHERE categorie='".$_POST["idCategorie"]."'");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value='".$row["sous_categorie"]."'>".$row["sous_categorie"]."</option>";
		}
	}
	echo "</select>";
?>


ajaxthemprojet.php
<?php
	include ('bdd.php');
	echo "<select name='thematique_projet' >";
	if(isset($_POST["idSous_categorie"])){
		$res = mysql_query("SELECT DISTINCT thematique_projet FROM devis_table WHERE sous_categorie='".$_POST["idSous_categorie"]."'");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value='".$row["thematique_projet"]."'>".$row["thematique_projet"]."</option>";
		}
	}
	echo "</select>";
?>

je debute et je suis perdu ! Merci d'avance

2 réponses

dubuducu Messages postés 395 Statut Membre 4
 
s'il vous plait ... je ne vois vraiment pas !
0
kij_82 Messages postés 4260 Statut Contributeur 857
 
Bonjour,

Quelques explications supplémentaires sur ton besoins et le but de ton code seraient les bienvenus. Sans ça je ne pense pas que tu puisse recevoir une aide.
0