jasou62114
Messages postés59Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention20 juillet 2010
-
31 janv. 2007 à 09:59
jasou62114
Messages postés59Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention20 juillet 2010
-
2 févr. 2007 à 08:20
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 exemples avec 3 mais j'avoue que j'ai beaucoup de difficultés pour faire les bon changements.
Alors voici ce qu'il y a dans ma page principale pour l'affichage :
<?php
include("Connexionbase.inc");
?>
<!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='';
var Ld2Id='';
var Ld3Id='';
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_département
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_commune
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;
if (Ld3Id=='') {var LD_URL = 'ValideLd4.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) { //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>
<style>
#buttons {
display: none;
}
</style>
</head>
RETOUR
<center>
Recherche d'une fiche de réparation
<form action="ouvrir_fich_reparation.php" method="POST">
----
Numéro de fabrication si vous le connaissez :,
----
&nbsp;,
----
Ou faite votre choix,
<?php
include(\"Connexionbase.inc\");
$vsql = \"SELECT NUM_ETAB,NOM_ETAB,NOM_SUPP FROM etablissement,supplement_localisation
where etablissement.NUM_SUPP=supplement_localisation.NUM_SUPP;\";
$resultat =$connexion->query($vsql);
$resultat2 =$connexion->query($vsql);
?>
----
&nbsp;,
----
Client&nbsp;:&nbsp;<?php include 'ValideLd1.php'; ?>&nbsp;<!--Pour remplir la liste déroulante 1-->
N° Fabrication &nbsp;:&nbsp;<?php include 'ValideLd2.php'; ?>&nbsp; <!--Pour remplir la liste déroulante 2-->
N° Citerne&nbsp;:&nbsp;<?php include 'ValideLd3.php'; ?>&nbsp; <!--Pour remplir la liste déroulante 3-->
Type Véhicule&nbsp;:&nbsp;<?php include 'ValideLd4.php'; ?>&nbsp; <!--Pour remplir la liste déroulante 4-->
N° Parc&nbsp;:&nbsp;<?php include 'ValideLd5.php'; ?>&nbsp; <!--Pour remplir la liste déroulante 5-->
Immatriculation&nbsp;:&nbsp;<?php include 'ValideLd6.php'; ?>&nbsp; <!--Pour remplir la liste déroulante 6-->
,
</form>
</center>
</html>
Pour pouvoir utiliser ceci j'ai plusieur fichier valide :
<?PHP
include 'Connexionbd.php';
$Ld1_retour =''; //num_etab clé de la liste déroulante 1
$Ld2_retour =''; //num_fab clé de la liste déroulante 2 // en plus pr le valide 2, 3, 4, ...
$Ld3_retour =''; //num_fab clé de la liste déroulante 3 // en plus pr le valide 3, 4, ...
$Ld4_retour =''; //num_fab clé de la liste déroulante 4 // en plus pr le valide 4, ...
// etc pour d'autre liste en plus..
if (isset($_GET['Ld1'])) {$Ld1_retour = $_GET['Ld1'];}
if (isset($_GET['Ld2'])) {$Ld2_retour = $_GET['Ld2'];}//num_fab clé de la liste déroulante 2 // en plus pr le valide 2, 3, 4, ...
if (isset($_GET['Ld3'])) {$Ld3_retour = $_GET['Ld3'];} //num_fab clé de la liste déroulante 3 // en plus pr le valide 3, 4, ...
if (isset($_GET['Ld4'])) {$Ld4_retour = $_GET['Ld4'];} //num_fab clé de la liste déroulante 4 // en plus pr le valide 4, ...
// etc pour d'autre liste en plus..
if (($Ld1_retour!='')&&($Ld2_retour!='')) {
$rq="SELECT NUM_CITERNE FROM camion WHERE NUM_ETAB=".$Ld1_retour." AND NUM_FABRICATION=".$Ld2_retour." order by NUM_CITERNE;";
$rq_pos_id=0;
$rq_pos_val=0;
$result= mysql_query ($rq) or die ("Select impossible");
$retour = '<select name="Liste3" id="Liste3" 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 = '';
}
mysql_free_result($result);
mysql_close($connexion);
}else{
$retour = '<select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select>';
}
echo $retour
?>
Voilà j'espère que quelqu'un pourrai m'aider à comprendre la première partie du code qui à mon avis gère l'apparition des combobox... vu que le javascript je n'arrive qu'à comprendre tout ce qui es controle de saisie ou alors l'affichage de messages lorsqu'on détecte une zone de texte non remplie....:oops: merci beaucoup par avance
jasou62114
Messages postés59Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention20 juillet 2010 2 févr. 2007 à 08:20
C'est bon j'ai trouvé j'ai réussi à les relier un part un.... voilà ca que ca donne pour la parti javascript !!
<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>
jasou62114
Messages postés59Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention20 juillet 2010 31 janv. 2007 à 13:48
Voilà ce que donne le code source( j'en profite pour dire que j'aimerai que lorsque je sélectionne dans la deuxime combobox, les quatre suivantes se débloque s'il y a un choix... ) :
<!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='';
var Ld2Id='';
var Ld3Id='';
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_département
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_département
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 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) {
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>
Client : <select name="Liste1" id="Liste1" size="1" onchange="ValideLd2(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> <!--Pour remplir la liste déroulante 1-->
N° Fabrication : <select name="Liste2" id="Liste2" size="1" disabled><option>Aucune valeur</option></select> <!--Pour remplir la liste déroulante 2-->
N° Citerne : <select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select> <!--Pour remplir la liste déroulante 3-->
Type Véhicule : <select name="Liste4" id="Liste4" size="1" disabled><option>Aucune valeur</option></select> <!--Pour remplir la liste déroulante 4-->
N° Parc : <select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select> <!--Pour remplir la liste déroulante 5-->
Immatriculation : <select name="Liste3" id="Liste3" size="1" disabled><option>Aucune valeur</option></select> <!--Pour remplir la liste déroulante 6-->