begin process at 2012 05 29 12:48:59
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Lier liste déroulante


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

Lier liste déroulante

samedi 25 novembre 2006 à 14:39:30 | Lier liste déroulante

piep14

Bonjour, je souhaite avoir deux listes déroulantes liées sans recharger la page. J'ai fait :

Code :
<script type="text/javascript">
var Ld1Id='';
var Ld2Id='';
var id_liste='';
 
 
function ValideLd2(val){
Ld1Id=val; //id_département
id_liste='2';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
var LD_URL = 'ValideLd2.php?Ld1='+Ld1Id;
ObjetXHR(LD_URL)
// Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
if(Ld2Id!=''){ValideLd3(''); }
}
 
function ValideLd3(val){
Ld2Id=val; //id_commune
id_liste='3'; //Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
if(Ld2Id==''){var LD_URL = 'ValideLd3.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);
}elseif(window.ActiveXObject){//IE
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>

fichier ValiderLd1.php

Code :
<?PHP
include 'Connexionbd.php';
$rq="Select id_commune, nom_commune from communes order by nom_commune LIMIT 10;";
$rq_pos_id=0; //position dans le SQL de la clé de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
$rq_pos_val=1; //position dans le SQL de la valeur de la liste déroulante idem dans ValideLd2.php et ValideLd3.php
 
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);">';
$retour .= '<option selected value="">Choisir...</option>';
if(mysql_num_rows($result) != 0){
while($row = mysql_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="0">';
}
mysql_free_result($result);
mysql_close($connexion);
echo $retour;
?>

fichier ValiderLd2

Code :
<?php
include 'Connexionbd.php';
$Ld1_retour =''; //id_département clé de la liste déroulante 1
 
if(isset($_GET['Ld1']))
{
$Ld1_retour = $_GET['Ld1'];
}
 
if($Ld1_retour!=''){
$rq="Select id_commune, nom_commune from communes where id_commune=".$Ld1_retour." order by nom_commune;";
$rq_pos_id=0;
$rq_pos_val=1;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select name="Liste2" id="Liste2" size="1" onchange="Affiche_Btn();">';
$retour .= '<option selected value="">Choisir...</option>';
 
if(mysql_num_rows($result) != 0){
while($row = mysql_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="'.$Ld1_retour.'">';
}
mysql_free_result($result);
mysql_close($connexion);
}else{
$retour = '<select name="Liste2" id="Liste2" size="1"><option>Vide</option></select>';
}
 
echo $retour;
?>

Mais je n'arrive pas a avoir de valeur dans la seconde liste. Voyez vous un problème dans le code ??? Merci
lundi 27 novembre 2006 à 22:25:49 | Re : Lier liste déroulante


Cette discussion est classée dans : liste, id, retour, xmlhttp, rq


Répondre à ce message

Sujets en rapport avec ce message

un combobox débloque 4 autres [ par jasou62114 ] Salut à tous, j'avai déjà posté pour relier 5 combobox les uns par rapport aux autres...Mais voilà la donne a changé et en fait je voudrai que lorsque javascript récupérer variable [ par ahcorad ] Bonjour,Mon code fonctionne bien sauf pour récupérer les valeurs de ma liste déroulante.Voici mon code :<meta http-equiv="Content-Type" content="text/ lier plusieur combox box... problème fonctionnement [ par jasou62114 ] Bonjour à tous.. voilà c'est mon premier post sur ce forum, et j'ai un enorme soucis.. j'essaye de relier 5 combox box ensembles... j'ai déjà vu des e Date et liste déroulante : bug étrange ! [ par ChEp51 ] Bonjour , Je ne sais pas si j'ai choisie la bonne section pour poster ça, mais je pense que vous me le direz le cas échéant ; )je suis sur un formulai Constructeur Ajax dans classe javascript [ par TheGorgo ] Bonjour, Je cherche à créer des classes javascript avec deux constructeurs. L'un d'eux est un à partir objet documentElement (facile). Pour l'autre c récupérer id d'un while php dans box javascript [ par noanis ] Bonsoir, J'ai un while qui génére une liste, chaque élément de cette liste possède un lien javascript qui ouvre une box. Je voudrais récupérer l'id [AJAX] Lier deux listes déroulantes [ par beegeezzz ] Salut les développeurs,J'aimerais créer une page avec 4 listes déroulantes liées.J'ai une première liste déroulante qui s'alimente correctement, je ne deux onchange dans un select [ par laticocotte ] Bonjour! j'essaie d'appliquer deux actions dans une liste déroulante à savoir j'ai une liste déroulante qui affiche en fonction de ce qui est choisi Evénement javascript sur une liste créée en AJAX [ par goldenboy68 ] Bonjourno ! J'ai 4 listes déroulantes dont les contenus sont liés. La première et la seconde restent fixes, donc les événements "onchange" définis fo Tri par ordre alphabétique [ par El_CaNaRdO ] Bonjour, Mon frère m'a aidé dernièrement à développer un petit JS pour faire des miracles. En résumé, j'ai un site qui recense des adresses. J'ai as


Nos sponsors


Sondage...

Comparez les prix

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,312 sec (3)

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