Une liste déroulante en fonction d'une autre
Fermé
infoges
Messages postés
9
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
4 avril 2010
-
1 avril 2010 à 17:09
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 3 avril 2010 à 09:56
Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 3 avril 2010 à 09:56
A voir également:
- Une liste déroulante en fonction d'une autre
- Liste déroulante excel - Guide
- Liste déroulante en fonction d'une autre - Astuces et Solutions
- Supprimer liste déroulante excel ✓ - Forum Excel
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Mise en forme conditionnelle en fonction d'une autre cellule ✓ - Forum Excel
5 réponses
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
1 avril 2010 à 17:46
1 avril 2010 à 17:46
Bonsoir,
sur ce forum en haut tu fais une recherche "listes deroulantes liees" dans le forum webmatering tu vas avoir une foule de post correspondant à ton pb
sur ce forum en haut tu fais une recherche "listes deroulantes liees" dans le forum webmatering tu vas avoir une foule de post correspondant à ton pb
infoges
Messages postés
9
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
4 avril 2010
2 avril 2010 à 17:10
2 avril 2010 à 17:10
Alain_42 j'ai réussi à trouver une solution mais n'est pus l'idéale parce que en résultat elle 'affiche tous les sous-critères de ma base de données mais mon objectif se focalise d'afficher les sous-critères en sélectionnant un critère de la première liste déroulante
et voici le code que j'ai utilisé
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<?php
// Appel à include "include.php";
include "include.php";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
// Séléction de tous les enregistrements de la table contact_client
$rq="Select * from contact_client";
$result= mysql_query ($rq) or die (mysql_error());
echo "<form method='POST' action=''>";?>
<select size="1" name="item" OnChange="sendData('item='+this.value,'lirecontact.php')" onKeyUp="sendData('item='+this.value,'lirecontact.php')">
<?php
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante de la table contact_client
echo "<option value=".($dt[0]).">".($dt[2])."</option>";
echo "<option value=".($dt[0]).">".($dt[3])."</option>";
echo "<option value=".($dt[0]).">".($dt[4])."</option>";
echo "<option value=".($dt[0]).">".($dt[5])."</option>";
echo "<option value=".($dt[0]).">".($dt[6])."</option>";
if ($i==0)
{
$j=$dt[0]; $i=1;
} // garder la valeur du premier enregistrement
}
?>
</select><br><br>
<div id="contenu">
<?php
// affichage des contacts appartenant à la selection
echo "<select size='1' name='Dynamic'>";
$rq="Select * order by Dynamic_field1;";
$result= mysql_query ($rq) or die (mysql_error());
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[4])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[5])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[6])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[7])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[8])."</option><br>";
}
echo "</select>";
?>
</div>
</form>
</body>
</html>
Dans l'attente de vos réponses je voudrais suggérer mes salutations les plus distinguées
Cordialement
Davotre répondsns l'attente de
et voici le code que j'ai utilisé
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<?php
// Appel à include "include.php";
include "include.php";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
// Séléction de tous les enregistrements de la table contact_client
$rq="Select * from contact_client";
$result= mysql_query ($rq) or die (mysql_error());
echo "<form method='POST' action=''>";?>
<select size="1" name="item" OnChange="sendData('item='+this.value,'lirecontact.php')" onKeyUp="sendData('item='+this.value,'lirecontact.php')">
<?php
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante de la table contact_client
echo "<option value=".($dt[0]).">".($dt[2])."</option>";
echo "<option value=".($dt[0]).">".($dt[3])."</option>";
echo "<option value=".($dt[0]).">".($dt[4])."</option>";
echo "<option value=".($dt[0]).">".($dt[5])."</option>";
echo "<option value=".($dt[0]).">".($dt[6])."</option>";
if ($i==0)
{
$j=$dt[0]; $i=1;
} // garder la valeur du premier enregistrement
}
?>
</select><br><br>
<div id="contenu">
<?php
// affichage des contacts appartenant à la selection
echo "<select size='1' name='Dynamic'>";
$rq="Select * order by Dynamic_field1;";
$result= mysql_query ($rq) or die (mysql_error());
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[4])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[5])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[6])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[7])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[8])."</option><br>";
}
echo "</select>";
?>
</div>
</form>
</body>
</html>
Dans l'attente de vos réponses je voudrais suggérer mes salutations les plus distinguées
Cordialement
Davotre répondsns l'attente de
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
2 avril 2010 à 18:16
2 avril 2010 à 18:16
ton premier fichier:
et le fichier appele par Ajax: lirecontact.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<?php
// Appel à include "include.php";
include "include.php";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
// Séléction de tous les enregistrements de la table contact_client
$rq="SELECT * FROM contact_client";
$result= mysql_query ($rq) or die (mysql_error());
echo "<form method='POST' action=''>";?>
<select size="1" name="item" OnChange="sendData('item='+this.value,'lirecontact.php')">
<!-- pourquoi onKeyUp ? onChange suffit -->
<?php
while ($dt=mysql_fetch_row($result))
{
//tu as un pb de copier coller tu as value=".($dt[0]) a ttes les lignes
// Remplir la liste déroulante de la table contact_client
echo "<option value=".($dt[0]).">".($dt[2])."</option>";
echo "<option value=".($dt[0]).">".($dt[3])."</option>";
echo "<option value=".($dt[0]).">".($dt[4])."</option>";
echo "<option value=".($dt[0]).">".($dt[5])."</option>";
echo "<option value=".($dt[0]).">".($dt[6])."</option>";
if ($i==0)
{
$j=$dt[0]; $i=1;
} // garder la valeur du premier enregistrement
}
?>
</select><br><br>
<div id="contenu">
<!-- la tu ne mets rien c'est ici que Ajax va venir ecrire la deuxième liste en fct du choix dans la premiere -->
</div>
</form>
</body>
</html>
et le fichier appele par Ajax: lirecontact.php
<?php
//recuperation de la valeur envoyee via Ajax
$item=$_POST['item'];
// affichage des contacts appartenant à la selection
// Appel à include "include.php";
include "include.php";
echo "<select size='1' name='Dynamic'>";
$rq="SELECT * FROM ton_autre_table WHERE item='".$item."';"; //la tu adaptes suivant la table et le champ correspondant à litem
$result= mysql_query ($rq) or die (mysql_error());
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
//ci dessous tu dois avoir un pb de copier coller tu as value=".utf8_encode($dt[0]) à ttes les lignes
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[4])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[5])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[6])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[7])."</option><br>";
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[8])."</option><br>";
}
echo "</select>";
?>
infoges
Messages postés
9
Date d'inscription
jeudi 1 avril 2010
Statut
Membre
Dernière intervention
4 avril 2010
2 avril 2010 à 21:31
2 avril 2010 à 21:31
J'ai essayé sans cesse , le même problème apparait chaque fois.
Concernant les listes déroulantes :
j'ai une table contact lien
qui contient des des champs items fields: item_field1...item_field5
et j'ai une autre table contact qui contient les dynamicfield de1 à 5
et c'est pour cette raison je répéte toutes les lignes pour avoir le contenu de tout les champs
Concernant les listes déroulantes :
j'ai une table contact lien
qui contient des des champs items fields: item_field1...item_field5
et j'ai une autre table contact qui contient les dynamicfield de1 à 5
et c'est pour cette raison je répéte toutes les lignes pour avoir le contenu de tout les champs
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
901
3 avril 2010 à 09:56
3 avril 2010 à 09:56
Ha ok , donc dans ta liste 1 tu as 5 lignes d'option chacune avec un item et repetées autant de fois que de client
et ensuite pour chacun des item tu veux afficher la liste des dynamicfiels
mais dans ta table "contact" qui contient les dynamicfield de1 à 5 est ce que tu as aussi un champ qui fait la liaison avec la table contact_client
un champ commun est ce le 0 ?
par ce qu'il faut pouvoir retrouver les valeurs de dynamicfiled correspondant à un itemfield caluse WHERE dans la requette
pour avoir un code plus parlant utilises plutôt:
mysql_fetch_assoc(....) au lieu de mysql_fetch_row
ensuite tu auras $dt['item1'] au lieu de $dt['1']
c'est plus parlant non ?
et ensuite pour chacun des item tu veux afficher la liste des dynamicfiels
mais dans ta table "contact" qui contient les dynamicfield de1 à 5 est ce que tu as aussi un champ qui fait la liaison avec la table contact_client
un champ commun est ce le 0 ?
par ce qu'il faut pouvoir retrouver les valeurs de dynamicfiled correspondant à un itemfield caluse WHERE dans la requette
pour avoir un code plus parlant utilises plutôt:
mysql_fetch_assoc(....) au lieu de mysql_fetch_row
ensuite tu auras $dt['item1'] au lieu de $dt['1']
c'est plus parlant non ?