Liste déroulante.Ne pa recharger la page?AJAX

Vins974 -  
 Vins974 -
Bonjour,

Je crée un site internet, et j'aimerais faire un formulaire. Bon un formulaire simple je sais le faire, mais là, je ve pouvoir mettre 3 liste déroulante dynamique. J'ai entendu parlé d'Ajax, mais je n'y connait rien. Je sais juste qu'il permet de ne pas recharger la page.

Alors ce que je voudrais faire c'est créer 3 listes déroulante. La premiere sélectionnerait tous les "services" de ma base de données. Puis comme un service a plusieurs "céllules", je veux que dans ma deuxieme liste déroulante, on puisse sélectionner une cellule parmi une liste qui concerne le "service" selectionné juste avant. Puis une 3e liste qui fait la même chose, même cette fois, on choisi un "utilisateur" qui appartient à la cellule sélectionné juste avant.

Merci beaucoup de me répondre. Je suis en stage, et j'ai besoin d'aide merci d'avance :)
A voir également:

1 réponse

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

un peu de théorie et un peu de pratique, autour d'une liste liée, ça tombe bien !
0
Vins974
 
Salut dalida,

C genti d'mavoir répondu mais j'ai justement essayer cet exemple, avan de poser la question et ca ne marche pas du tout. J'arrive même pas dans ma premiere liste déroulante, a retrouver les infos de ma base de données. Jte file le code si tu veux


service.php:
<html>
	<head>
		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
		<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('cellule').innerHTML = leselect;
					}
				}

				// Ici on va voir comment faire du post
				xhr.open("POST","ajaxcellule.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('service');
				idservice = sel.options[sel.selectedIndex].value;
				xhr.send("idservice="+idservice);
			}
		</script>
	</head>
	<body>
		<form>
			<fieldset style="width: 500px">
				<legend>Pour :</legend>
				<label>Service</label>
				<select name='service' id='service' onchange='go()'>
					<option value='-1'>Choisissez un service</option>
					

				<?
						include ("connexionBDD.php");
						$res = mysql_query("SELECT Libelle_service FROM service ORDER BY Libelle_service");
						while($row = mysql_fetch_assoc($res))
						{
							echo "<option value='".$row["Num_service"]."'>".$row["Libelle_service"]."</option>";
						}
					?>
					
					
					
					
					
				</select>
				<label>Cellule</label>
				<div id='cellule' style='display:inline'>
				<select name='cellule'>
					<option value='-1'>Choisissez une cellule</option>
				</select>
				</div>
			</fieldset>
		</form>
	</body>
</html>



et l'autre page : ajaxcellule.php:

<?php
	echo "<select name='cellule'>";
	if(isset($_POST["idservice"])){
		include ("connexionBDD.php");
		$res = mysql_query("SELECT * FROM cellule 
			WHERE Num_service=".$_POST["idservice"]." ORDER BY Libelle_cellule");
		while($row = mysql_fetch_assoc($res)){
			echo "<option value='".$row["Num_cellule"]."'>".$row["Libelle_cellule"]."</option>";
		}
	}
	echo "</select>";
?>




Merci d'maider !!!!
0