[Ajax] Listes deroulantes

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
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. s'il vous plait ... je ne vois vraiment pas !
    0
    1. Contributeur
      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