Accueil > Forum > > > > Récupérer valeurs d'une liste déroulante liée à 3 niveaux
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
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|