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

Javascript / DHTML / Ajax

 > 

Framework

 > 

Ajax

 > 

un combobox débloque 4 autres


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

un combobox débloque 4 autres

vendredi 2 février 2007 à 08:28:40 | un combobox débloque 4 autres

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 je sélectionne dans la deuxième Combobox les quatres suivantes se débloquent... comment faire? voilà mon code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ouvrir une fiche de réparation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
var Ld1Id='';// on initialise la variable à vide
var Ld2Id='';// on initialise la variable à vide
var Ld3Id='';// on initialise la variable à vide
var Ld4Id='';// on initialise la variable à vide
var Ld5Id='';// on initialise la variable à vide
var Ld6Id='';// on initialise la variable à vide
var id_liste='';// on initialise la variable à vide
function ValideLd2(val) {//
 Ld1Id=val; //id de l'élément sélectionné précédemment
 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 de l'élément sélectionné précédemment
 id_liste='3';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
 ObjetXHR(LD_URL)
 // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
 if (Ld3Id!='') {ValideLd4(''); }
}
function ValideLd4(val) {
 Ld3Id=val; //id de l'élément sélectionné précédemment
 id_liste='4';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd4.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id;
 ObjetXHR(LD_URL)
 // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
 if (Ld4Id!='') {ValideLd5(''); }
}
function ValideLd5(val) {
 Ld4Id=val; //id de l'élément sélectionné précédemment
 id_liste='5';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd5.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id+'&Ld4='+Ld4Id;
 ObjetXHR(LD_URL)
 // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
 if (Ld5Id!='') {ValideLd6(''); }
}
function ValideLd6(val) {
 Ld5Id=val; //id de l'élément sélectionné précédemment
 id_liste='6';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd6.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id+'&Ld4='+Ld4Id+'&Ld5='+Ld5Id;
 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) { //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) { // si l'objet est à l'état terminé
  if (xmlhttp.status==200) { // si le sereur renvoi OK (200)
   //span id="niv2" ou "niv3"
   document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText; /* on récupère le numéro de la liste situé sur
   la page et on a la Chaîne correspondant à la réponse du serveur à la requête */
   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>
<STYLE>
#buttons {
 display: none;
}
</style>
</head>
<body background="img/m10a.jpg">
<a href='javascript:history.go(-1)'>RETOUR
<center>
<h2>Recherche d'une fiche de réparation</h2>
<form action="ouvrir_fich_reparation.php" method="POST">
<table border="0">
 <tr align="center">
  <td>Numéro de fabrication si vous le connaissez :<input type="text" value="Rechercher">
</form>
</center>
</body>
</html>
vendredi 2 février 2007 à 10:30:40 | Re : un combobox débloque 4 autres

bultez

Membre Club




Bonjour,  

    c'est quoi un combobox ? ça n'existe ni en Javascript ni en Html.
    et ici, on ne voit qu'un <input text> finalement.
    et que vient faire la séquence "xmlhttprequest" dans ce coup ci ?


Cordialement        Bul         [mon Site]     [M'écrire]

vendredi 2 février 2007 à 11:59:53 | Re : un combobox débloque 4 autres

jasou62114

Réponse acceptée !

en fait voilà mon code mais j'ai résulu mon problème<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
" [ Lien ]">
<html>
<head>
<title>Ouvrir une fiche de réparation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
var Ld1Id='';// on initialise la variable à vide
var Ld2Id='';// on initialise la variable à vide
var Ld3Id='';// on initialise la variable à vide
var Ld4Id='';// on initialise la variable à vide
var Ld5Id='';// on initialise la variable à vide
var Ld6Id='';// on initialise la variable à vide
var id_liste='';// on initialise la variable à vide

function ValideLd2(val) {//
 Ld1Id=val; //id de l'élément sélectionné précédemment
 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 de l'élément sélectionné précédemment
 id_liste='3';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd3.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id;
 ObjetXHR(LD_URL)
 // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
 if (Ld3Id!='') {ValideLd4(''); }
}

function ValideLd4(val) {
 Ld3Id=val; //id de l'élément sélectionné précédemment
 id_liste='4';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd4.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id;
 ObjetXHR(LD_URL)
 // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
 if (Ld4Id!='') {ValideLd5(''); }
}

function ValideLd5(val) {
 Ld4Id=val; //id de l'élément sélectionné précédemment
 id_liste='5';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd5.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id+'&Ld4='+Ld4Id;
 ObjetXHR(LD_URL)
 // Réinitialisation de Ld3 si modification de LD1 après passage en Ld2
 if (Ld5Id!='') {ValideLd6(''); }
}

function ValideLd6(val) {
 Ld5Id=val; //id de l'élément sélectionné précédemment
 id_liste='6';//Utilisé dans la fonction ChargeLd() pour identifier la liste déroulante
 var LD_URL = 'ValideLd6.php?Ld1='+Ld1Id+'&Ld2='+Ld2Id+'&Ld3='+Ld3Id+'&Ld4='+Ld4Id+'&Ld5='+Ld5Id;
 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) { //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) { // si l'objet est à l'état terminé(4)
  if (xmlhttp.status==200) { // si le sereur renvoi OK (200)
   //span id="niv2" ou "niv3"
   document.getElementById('niv'+id_liste).innerHTML=xmlhttp.responseText; /* on récupère le numéro de la liste situé sur
   la page et on a la Chaîne correspondant à la réponse du serveur à la requête */
   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>

<STYLE>
#buttons {
 display: none;
}
</style>
</head>
<body background="img/m10a.jpg">
<a href='javascript:history.go(-1)'>RETOUR</a>
<center>
<h2>Recherche d'une fiche de réparation</h2>
<form action="ouvrir_fich_reparation.php" method="POST">
<table border="0">
 <tr align="center">
  <td>Numéro de fabrication si vous le connaissez :<input type="text" name="txtnumfab"></td>
 </tr>
 <tr>
  <td colspan="3">&nbsp;</td>
 </tr>
 <tr>
  <td colspan="3" align="center">Ou faite votre choix</td>
 </tr>
   <tr>
  <td colspan="3">&nbsp;</td>
 </tr>
 <tr align="center">
  <td>
   Client&nbsp;:&nbsp;<select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(this[this.selectedIndex].value);ValideLd3(this[this.selectedIndex].value)"><option selected value="">Choisir...</option><option value="1">société une</option><option value="2">société deux</option><option value="3">société une</option><option value="4">société deux</option></select>&nbsp;<!--Pour remplir la liste déroulante 1-->
  
   N° Fabrication &nbsp;:&nbsp;<span id="niv2"><select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select></span>&nbsp; <!--Pour remplir la liste déroulante 2-->
  
   N° Citerne&nbsp;:&nbsp;<span id="niv3"><select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select></span>&nbsp; <!--Pour remplir la liste déroulante 3-->
 <br>
   Type Véhicule&nbsp;:&nbsp;<span id="niv4"><select name="Liste4" id="Liste4" size="1" disabled><option>Aucune valeur</option></select></span>&nbsp; <!--Pour remplir la liste déroulante 4-->
   
   N° Parc&nbsp;:&nbsp;<span id="niv5"><select name="Liste5" id="Liste5" size="1" disabled><option>Aucune valeur</option></select></span>&nbsp; <!--Pour remplir la liste déroulante 5-->
   
   Immatriculation&nbsp;:&nbsp;<span id="niv6"><select name="Liste6" id="Liste6" size="1" disabled><option>Aucune valeur</option></select></span>&nbsp; <!--Pour remplir la liste déroulante 6-->
  <span id="buttons">
  </span>
  </td>
 </tr>

</table>
<br><br>
<input type="submit" value="Rechercher">
</form>
</center>
</body>
</html>



J'ai résolu mon problème en fait dans la page valide ou dans le onchange je pouvais mettre les autres combo disponible( et un combobox est un menu déroulant)
Par exemple ici dans valideL2 j'ai ceci

<?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 NUM_FABRICATION FROM camion WHERE NUM_ETAB=".$Ld1_retour." order by NUM_FABRICATION;";
 $rq_pos_id=0;
 $rq_pos_val=0;
 $result= mysql_query ($rq) or die ("Select impossible");
 $retour = '<select name="Liste2" id="Liste2" size="1" onchange="ValideLd3(this[this.selectedIndex].value);ValideLd4(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="Liste2" type="text" size="10" value="Aucune valeur" disabled>';
 }
 mysql_free_result($result);
 mysql_close($connexion);
}else{
 $retour = '<select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select>';

echo $retour
?>


et c'est ici  onchange="ValideLd3(this[this.selectedIndex].value);ValideLd4(this[this.selectedIndex].value)">'; que je devait rajouter les nom des autres nom des combo...
problème résolu

vendredi 2 février 2007 à 13:07:32 | Re : un combobox débloque 4 autres

bultez

Membre Club





nickel si ça baigen et merci de l'avoir dit !
mais avec ce qui étati mis ici, impossible pour nous de résoudre.

>>un combobox est un menu déroulant
ben non !!! en VB, par exemple et avec d'auyes langages, c'est une liste
    déroulante mais en html/javascript ça n'existe pas ( la balise select, ça, oui )


Cordialement            Bul         [mon Site]     [M'écrire]

vendredi 2 février 2007 à 13:22:40 | Re : un combobox débloque 4 autres

jasou62114

ha je ne savais pas, en cours on a toujours parlé de chose comme ca... bravo les profs.. .loool
mais bon voilà si ca peut rendre service à quelqu'un ^^


Cette discussion est classée dans : liste, url, id, xmlhttp, ld


Répondre à ce message

Sujets en rapport avec ce message

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 Lier liste déroulante [ par piep14 ] Bonjour, je souhaite avoir deux listes déroulantes liées sans recharger la page. J'ai fait :Code :<pre class="alt 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/ récupérer les paramètres d'une URL [ par sheep974 ] bonjour, je débute en js et je bloque à un endroit:j'ai une url : http://localhost/works/index_beta.php?var=trucj'ai sur cette page un tableau de vale 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 visibilté liste déroulante sélection [ par vinz78 ] salut j'explique en gros j'ai une liste déroulante qui excuté une requete pour voir les nom de ma table laboratoire. dans cette table il y a aussi un Ajax...et id ? [ par xeroxiss ] Bonsoir, Après avoir beaucoup cherché, (tutos, post, script,...etc..), je poste ici en désespoire de cause ! Mon problème a l'air tout bête (et a mon creer des option dans une liste deroulate à la volée [ par axl63800 ] Bon je vais essayer d'etre le plus clair possibleEn gros j'ai un formulaire pour remplir une base de donnée et qui va recolter des infos dans celle ci Script echange pop problème Au secours [ par topsitesfr ] Qui peu m’aider ? Voila je suis entrain de monter un site d’échange de pop et popunder. Oui ouiils y en a qui en veulent encore (des pops)    Mais voi Comment récupéré l'id (ou etiquette) d'une liste déroulante ? [ par converse ] Bonjour à tous,Je gallère un peu depuis hier. Je vais tenter d'expliquer simplement ma question.Je souhaite envoyer via une liste déroulante dans un f


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,328 sec (4)

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