begin process at 2012 05 31 13:56:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Web 2.0

 > 

Ajax

 > 

Récupérer valeurs d'une liste déroulante liée à 3 niveaux


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

Récupérer valeurs d'une liste déroulante liée à 3 niveaux

lundi 31 janvier 2011 à 10:57:01 | Récupérer valeurs d'une liste déroulante liée à 3 niveaux

pac29

Bonjour,

J'ai repris le code disponible ici :CHAINER 3 LISTES DÉROULANTES EN AJAHT qui sert à faire une liste déroulante liée à 3 niveaux en ajax. Mon soucis est que je n'arrive pas à récupérer les valeurs de mes choix pour les insérer dans une requête SQL et stocker le tout dans une BD.

Code Javascript :
<html>
<head>
<script type="text/javascript">
var Ld1Id='';
var Ld2Id='';
var id_liste='';

function Ld2(val) {
	Ld1Id=val; // id_déprtement
	id_liste='2'; // Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
	var LD_URL = 'Ld2.php?Ld1='+Ld1Id;
	ObjetXHR(LD_URL)
	// Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
	if (Ld2Id!='') {Ld3('');	}
}

function Ld3(val) {
	Ld2Id=val; // id_tension
	id_liste='3'; // Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
	var LD_URL = 'Ld3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
	if (Ld2Id=='') {var LD_URL = 'Ld3.php';}	
	ObjetXHR(LD_URL)
}

function ObjetXHR(LD_URL) {
	// creation de l'objet XMLHttpRequest
	if (window.XMLHttpRequest) { // Mozilla
		xmlhttp=new XMLHttpRequest();
		if (xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType('text/xml');
		}	
		xmlhttp.onreadystatechange=ChargeLd;
		xmlhttp.open("get", LD_URL, true);
		xmlhttp.send(null);
	} else if (window.ActiveXObject) { // Internet Explorer 
		xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
		if (xmlhttp) {
			xmlhttp.onreadystatechange=ChargeLd;
			xmlhttp.open('get', LD_URL, false);
			xmlhttp.send();
		}
	}
	// Bouton non apparent car modification de LD1 ou Ld2
	document.getElementById('buttons').style.display='none';
}

// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
	if (xmlhttp.readyState==4) { 
		if (xmlhttp.status==200) { 
			// span id="niv2" ou "niv3"
			document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText; 
			if (xmlhttp.responseText.indexOf('disabled')<=0) {
				// focus sur liste déroulante 2 ou 3
				document.getElementById('Liste'+id_liste).focus(); 
			}	
		}
	}
}

function Affiche_Btn() {
	document.getElementById('buttons').style.display='inline';
}
</script>


Code PHP :
</script>
</head>
<body>
<form method="post" action="test2.php">
	<!--Pour remplir la liste déroulante 1-->
	<?php 
	// Connexion
	$db = mysqli_connect('localhost','root');
	// Sélection de la base données
	$ok = mysqli_select_db($db,'xls_db');
	$rq="Select id_departement,departements from departements order by departements;";
	$rq_pos_id=0; // position dans le SQL de la clé de la liste déroulante idem dans Ld2.php et Ld3.php
	$rq_pos_val=1; // position dans le SQL de la valeur de la liste déroulante idem dans Ld2.php et Ld3.php 

	$result = mysqli_query($db,$rq) or die ("Select impossible");
	$retour = '<select name="Liste1" id="Liste1" size="1" onchange="Ld2(this[this.selectedIndex].value);">';
	$retour .= '<option selected value="">Choisir le département</option>';
	
	if (mysqli_num_rows($result) != 0) {
		while ($row = mysqli_fetch_row($result)) {
			$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
		}
		$retour .= '</select>';
	} else {
		$retour = '<input id="size" type="text" size="10" value="Aucune valeur" disabled>';
	}			
	mysqli_fetch_array($result);
	$donnees_une = mysqli_fetch_array($result);
	$liste_une = ($donnees_une['liste_une']);
	echo $retour 
	?> 
	
	<!--Pour remplir la liste déroulante 2-->
	<span id="niv2"> 
	<?php 
	$Ld1_retour =''; // id_departement clé de la liste déroulante 1

	if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}

		if ($Ld1_retour!='') {
			$rq="Select id_tension, tension from tension where id_departement=".$Ld1_retour." order by tension;";
			$rq_pos_id=0;
			$rq_pos_val=1;
			$result = mysqli_query($db,$rq) or die ("Select impossible");
			$retour = '<select name="Liste2" id="Liste2" size="1" onchange="Ld3(this[this.selectedIndex].value);">';
			$retour .= '<option selected value="">Choisir la tension</option>';

			if (mysqli_num_rows($result) != 0) {
				while ($row = mysqli_fetch_row($result)) {
					$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
				}
				$retour .= '</select>';
			} else {
				$retour = '<input id="Liste2" type="text" size="10" value="Aucune valeur" disabled>';
			}
			mysqli_fetch_array($result);
			} else {
				$retour = '<select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select>';
			}
		$donnees_deux = mysqli_fetch_array($result);
		$liste_deux = ($donnees_deux['liste_deux']);			
		echo $retour
	?> 
	</span> 
	
	<!--Pour remplir la liste déroulante 3-->	
	<span id="niv3"> 
	<?php 
	if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
	if (isset($_GET['Ld2'])) {$Ld2_retour =  $_GET['Ld2'];}

		if (($Ld1_retour!='')&&($Ld2_retour!='')) {
			$rq="Select communes from communes where id_departement=".$Ld1_retour." AND id_tension=".$Ld2_retour." order by communes;";
			$rq_pos_id=0;
			$rq_pos_val=1;
			$result = mysqli_query($db,$rq) or die ("Select impossible");
			$retour = '<select name="Liste3" id="Liste3" size="1" onchange="Affiche_Btn();">';
			$retour .= '<option selected value="">Choisir la commune</option>';

			if (mysqli_num_rows($result) != 0) {
				while ($row = mysqli_fetch_row($result)) {
					$retour .= '<option value="'. $row[$rq_pos_id] .'">'. $row[$rq_pos_val] .'</option>';
				}
				$retour .= '</select>';
			} else {
				$retour = '<input id="Liste3" type="text" size="10" value="Aucune valeur" disabled>';
			}
			mysqli_fetch_array($result);
			} else {
				$retour = '<select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select>';
			}
		$donnees_trois = mysqli_fetch_array($result);
		$liste_trois = ($donnees_trois['liste_trois']);
		echo $retour
	?> 
	</span> 
			
	<span id="buttons"><br />
	<br /><input type="submit" value="Valider">
	</span>
	<br />
	<a href="page1.php">page 1</a>
	<br /><a href="page2.php">page 2</a> 
	<br /><a href="page3.php">page 3</a>
	<br /><a href="page4.php">test page 2</a>
	<br /><a href="test1.php">test 1 page 3</a> 
	</form>
</body>
</html>
<?php
// Inclusion du fichier contenant les fonctions générales.
include ('fonctions.inc.php');
if (isset($_POST['Valider'])) 
{
	// Récupérer les information saisies.
	$liste_une = ($_POST['liste_une']);
	$liste_deux = ($_POST['liste_deux']);
	$liste_trois = ($_POST['liste_trois']);
}
// Execution de la requête
$requete = mysqli_query($db,"INSERT INTO elagage (departement, tension, commune)

VALUES ('niv'+'1', 'niv'+'2', '$liste_trois')");

if ($requete === FALSE) {
	echo 'Echec de l éxécution de la requête';
} else {
	//echo 'Exécution réussie';
}
// Déconnexion
$ok = mysqli_close($db);
?>



Merci de votre aide,
Amicalement,
Pierre-Alexandre


Cette discussion est classée dans : liste, retour, xmlhttp, mysqli, if


Répondre à ce message

Sujets en rapport avec ce message

afficher mon r?|sultat :x [ par Slyders ] Bonjour, je suis bloqu¨¦ depuis 1jour et demi sur, je suis sur un truc con....Peut ¨ºtre pourrez vous m'¨¦clairer....J'ai le code suivant : Mon Javasc Pb pour recupérer certaines valeurs ? [ par neo_tsubasa ] Bonjour,J'ai modifié un script que j'ai trouvé sur le site pour afin d'enchainer plusieurs listes deroulantes ( ça marche ) mais j'aurais voulu ajoute Pb javascript php variable [ par ahcorad ] Bonjour, Voila j'ai un souci avec plusieurs listes déroulantes et une liste multiple choix :mon code :<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tra Requête liste déroulante dans un formulaire [ par callmerv ] Bonjour et meilleurs voeux à tous pour 2008.Tout d'abord mon environnement technique :- PC sous XP Pro- EasyPhp 2.0.0.0- Apache 2.2.3- Php 5.2.0- MySq javascript et php [ par amine390 ] salutje veux utilise une fonction java script en php j'arrive pas a recupere la valeur de cette function l'erreur qui s'affiche est undifuned function Ajax et variables de sessions en temps réel [ par ICIoBRa ] Salut à tous, je cherche à afficher sur une page, la valeur d'une variable de session en temps réel, sans recharger la page.Voila un exemple, je voudr problème avec ajax liste déroulante tremplie a partir d'une base Au secoooooours [ par tiwtiwa11 ] Bonjour tout le monde j'essai de remplir ma liste déroulante "chambre" par une liste de chambre qui répond à trois critères (appartiennent à une ville créer les options dans la liste déroulant [ par abdeslam2009 ] Bonjour, j'ai deux liste déroulante en php: dans la première liste j'ai alimenté deux options Représentant et Employé dans la deuxième liste je vou Ajax - php/mysql [ par laura1988 ] Bonjour, J'ai un souci au niveau de ajout et de la recherche d'article. Par contre au niveau de la lecture et la suppression tout va bien. j'ai un f probleme de pagination [ par amani7987 ] Salem, je suis débutant en php, je ecrire le code d'une page qui affiche la liste des personne à partir de ma base de donnée et je veux affiché 5 li


Nos sponsors


Sondage...

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 : 0,359 sec (4)

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