Triple liste déroulante

ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007 - 8 févr. 2006 à 10:43
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007 - 10 févr. 2006 à 16:56
J'aimerais avoir trois listes déroulantes liées : sélection catégorie, sous_catégorie et objet
l'objet faisant partie de la sous-catégorie.
un formulaire sans recharger la page (bien sur !)
j'ai tenté de modifier le code de frop01
http://www.phpcs.com/code.aspx?id=25832#
http://perso.wareteam.com/comment_demander_des_informations_au_serveur_sans_recharger_la_page-.php
en utilisant la méthode ajax car données importantes !
mais sans succès !
dc si qq1 a une idée ! merci !

6 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 févr. 2006 à 10:59
Hello,

heu, c'est justement quand le nombre de données qui transitent entre le serveur et le client est important que les requêtes xmlhttp ne sont pas forcément recommandables...
Enfin bref, que ce soit entre 2, 3, ou 10 listes, la manière sera la même.
Dis nous plutôt sur quoi tu bloques ?
0
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007
8 févr. 2006 à 13:33
je bloque sur la deuxième liste il faut juste répéter le même procédé que pour la première liste ou il faut rajouter quelque chose d'autre ???
car ç'est la liste intermédiaire qui reçoi la donnée de la 1ère et doit donner une valeur à la 3ème !
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 févr. 2006 à 13:46
Le principe est le même entre la 1ère et la 2de, qu'entre la 2de et la 3ème.
0
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007
8 févr. 2006 à 13:49
ok ba jvai revoir si j'ai pas fait d'erreur !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007
10 févr. 2006 à 10:20
ça ne fonctionne toujours pas ! je ne vois vraiment pas ! je met mon code !
page principal
<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


function send(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("cont");

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>


<?php
// Paramètres de la Connexion à la base MYSQL
$user="";
$host="";
$password="";
$database="";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
$k=0;
$l=0;

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
echo '<form action="rec.php" method="POST">';
// Séléction de tous les enregistrements de la table Catégorie
$rq="SELECT * FROM structure WHERE numstructure <> 0 ORDER BY siglestructure;";
$result= mysql_query ($rq) or die ("Select impossible");
?>
<select size="1" name="struc" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
<?php
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "<option value=".($dt[0]).">".($dt[2])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
?>
</select>





<select size='1' name='service' OnChange="send('no='+this.value,'lire.php')" onKeyUp="send('no='+this.value,'lire.php')">
<?php
$rq="SELECT * FROM service WHERE numstructure=".$j." ORDER BY nomservice;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[3])."</option>
";
if ($k==0) { $l=$dt[0]; $k=1; } // garder la valeur du premier enregistrement
}
echo "</select>";
echo '
';
?>




<select size='1' name='sous_service'>
<?php
$rq="SELECT * FROM sous_service WHERE numservice=".$l." ORDER BY nomsousservice;";
$result= mysql_query ($rq) or die ("Select impossible");
$k=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[3])."</option>
";
}
echo "</select>";
echo '
';
echo '';
echo "</form>";
?>

</html>



lire.php
<?php
header('Content-type: text') ; // on déclare ce qui va être afficher

// test des POST emis
if(isset($_POST['no']) && !empty($_POST['no']) ){
$user="";
$host="";
$password="";
$database="";
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
$rq="SELECT * FROM sous_service WHERE numservice=".$_POST['no']." ORDER BY nomsous_service;";
$result= mysql_query ($rq) or die ("Select impossible");
$k=0;
if (mysql_num_rows($result)>0)
{
echo "<select size='1' name='sous_service'>";
}
else
{
echo utf8_encode("Aucun sous service");
echo '';
}
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[3])."</option>
";
}
echo "</select>";
}


?>

liresc.php

<?php
header('Content-type: text') ; // on déclare ce qui va être afficher

// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
$user="";
$host="";
$password="";
$database="";
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
$rq="SELECT * FROM service WHERE numstructure=".$_POST['id']." ORDER BY nomservice;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
if (mysql_num_rows($result)>0)
{
echo "<select size='1' name='service'>";
}
else
{
echo utf8_encode("Aucun service");
echo '';
}
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[3])."</option>
";
}
echo "</select>";
}


?>
Voila HELP !
0
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007
10 févr. 2006 à 16:56
ç ptet un peu compliqué mais j'ai vraiment besoin de votre aide ! merci
0