Listes déroulantes liées

Signaler
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012
-
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012
-
J'aimerais réalisé en ajax un script permettant l'utilsation de liste déroulante liées, c'est à dire des listes déroulantes dont le contenu dépend de ce qui est préalablement sélectionné.

Classe : (Classe de l'étudiant)
Option : ( Option en fonction de la classe, les options different)
Promo : ( les differentes promos ex : 2008/2009)
Etudiant : (la liste des étudiants en fonction de la classe, l'option et la promo)
Référence : (les references de stages en fonction de létudiant et de la promo)

puis ensuite on affiche les informations concernant le stage. J'aimerais réalisé cela de manière asynchrone.
Est ce que quelqu'un pourrait me montrer des scripts similaires a ceci ou m'expliquer en quelques lignes les différentes étapes du développement de ce genre de script.

J'ai tenté d'en trouver sur le site, mais j'en ai pas trouvé concernant les listes déroulantes liées fesant appel à une base de données.

Merci d'avance.

7 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
un post récent à traité du sujet il me
semble
http://www.javascriptfr.com/forum/sujet-LISTE-DEROULANTE-DYNAMIQUE-PHP-AJAX_1256468.aspx
;O)
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

Sur un autre partie de mon application j'ai une liste déroulante permettant d'accéder au entreprise. Chaque entreprise peuvent avoir plusieurs tuteurs.
voici un extrait de mon code

(page entreprises.php)

Consultation des Entreprises

Texte menu 2 ;)

<link type="text/css" rel="stylesheet" href="css/form.css" />
<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>
<form id="monForm" action="#" method="post">
    <fieldset>
        <legend align="top">Entreprise</legend>
       
            <label for="form_nomusuel">Nom usuel : </label>
            <?php
   // Paramètres de la Connexion à la base MYSQL
   $user="root";
   $host="localhost";
   $password="";
   $database="logistage";
   $i=0; // variable de test
   $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
   $k=0;   
   $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
   
   mysql_select_db($database,$connexion);
   
   // Séléction de tous les enregistrements de la table Catégorie
   $rq="Select * from entreprise order by nomentreprise;";
   $result= mysql_query ($rq) or die ("Select impossible");
   echo "<form method='POST' action='valid.php'>";?>   <select size="1" name="cat" OnChange="sendData('id='+this.value,'include/consultentreprises.php')" onKeyUp="sendData('id='+this.value,'include/consultentreprises.php')">
<?php    
   while ($dt=mysql_fetch_row($result))
   {
    // Remplir la liste déroulante des catégorie   
    echo "<option value=".($dt[0]).">".($dt[3])."</option>";
    if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
   }
   ?>   
   </select>       
       

    </fieldset>
   

    <?php
    $req="SELECT * from entreprise Where CodeEntreprise=".$j."";
    $resultreq= mysql_query ($req) or die ("Select impossible");
    $i =0;
    $dt2=mysql_fetch_row($resultreq);
    ?>
    <fieldset>
    <legend>Description de l'entreprise</legend>
       
            <label for="form_rue">Rue : </label>
            " disabled="true"/>
       

       
            <label for="form_cp">Code Postal : </label>
            " disabled="true"/>
       

       
            <label for="form_ville">Ville : </label>
            " disabled="true"/>
       

       
            <label for="form_tel">T&eacute;l&eacute;phone : </label>
            " disabled="true"/>
       

       
            <label for="form_faxe">Faxe : </label>
            " disabled="true"/>
       

       
            <label for="form_couriel">Couriel : </label>
            " disabled="true"/>
       

       
            <label for="form_web">Web : </label>
            " disabled="true"/>
       

    </fieldset>
    <fieldset>
    <legend align="top">Renseignements</legend>
       
            <label for="form_ape">Code APE : </label>
            " disabled="true"/>
       

       
            <label for="form_siret">Num SIRET/SIREN : </label>
            " disabled="true"/>
       

       
            <label for="form_nbsalarie">Nombre de salari&eacute; : </label>
            " disabled="true"/>
       

    </fieldset>
    <fieldset>
    <legend align="top">Informations compl&eacute;mentaires</legend>
       
            <label for="form_dateenregistrement">Date enregistrement : </label>
            " disabled="true"/>
       

       
            <label for="form_dateenregistrement">Date dernier stage : </label>
           
       

       
        <label for="form_activite">Activit&eacute; principale : </label>
       
       

       
        <label for="form_missions">Exemples de missions : </label>
       
       

    </fieldset>
    <fieldset>
    <legend align="top">Contacts</legend>
       
        <label for="form_contact">Contact : </label>
       
       
       
        <?php
        // Séléction de tous les enregistrements de la table Tuteur
   $rq1="Select * from tuteur WHERE codeentreprise=".$j.";";
   $result1= mysql_query ($rq1) or die ("Select impossible");
   echo "<form method='POST' action='valid.php'>";?>   <select size="1" name="contact" OnChange="sendData('id='+this.value,'include/consultentreprises.php')" onKeyUp="sendData('id='+this.value,'include/consultentreprises.php')">
<?php    
   while ($dt1=mysql_fetch_row($result1))
   {
    // Remplir la liste déroulante des catégorie   
    echo "<option value=".utf8_encode($dt1[0]).">".($dt1[1])." ".utf8_encode($dt1[2])." ".($dt1[3])."</option>
";
        if ($i==0) { $k=$dt1[0]; $i=1; }
        }   
   ?>   
   </select>
       
       

        <?php
        $requete="SELECT * from tuteur Where Codetuteur=".$k."";
        $resultrequete= mysql_query ($requete) or die ("Select impossible");
        $i =0;
        $dt3=mysql_fetch_row($resultrequete);
        ?>
       
        <label for="form_teltuteur">Téléphone : </label>
        " disabled="true"/>
       

       
        <label for="form_courieltuteur">Couriel : </label>
        " disabled="true"/>
       

    </fieldset>
   

</form>
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

(et ma page consultentreprises.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="root";
   $host="localhost";
   $password="";
   $database="logistage";
   $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");  
   mysql_select_db($database,$connexion);
   
    $req="SELECT * from entreprise Where CodeEntreprise=".$_POST['id']."";
    $resultreq= mysql_query ($req) or die ("Select impossible");
    $i =0;
    $dt2=mysql_fetch_row($resultreq);
    ?>
    <fieldset>
    <legend>Description de l'entreprise</legend>
       
            <label for="form_rue">Rue : </label>
            " disabled="true"/>
       

       
            <label for="form_cp">Code Postal : </label>
            " disabled="true"/>
       

       
            <label for="form_ville">Ville : </label>
            " disabled="true"/>
       

       
            <label for="form_tel">T&eacute;l&eacute;phone : </label>
            " disabled="true"/>
       

       
            <label for="form_faxe">Faxe : </label>
            " disabled="true"/>
       

       
            <label for="form_couriel">Couriel : </label>
            " disabled="true"/>
       

       
            <label for="form_web">Web : </label>
            " disabled="true"/>
       

    </fieldset>
    <fieldset>
    <legend align="top">Renseignements</legend>
       
            <label for="form_ape">Code APE : </label>
            " disabled="true"/>
       

       
            <label for="form_siret">Num SIRET/SIREN : </label>
            " disabled="true"/>
       

       
            <label for="form_nbsalarie">Nombre de salari&eacute; : </label>
            " disabled="true"/>
       

    </fieldset>
    <fieldset>
    <legend align="top">Informations compl&eacute;mentaires</legend>
       
            <label for="form_dateenregistrement">Date enregistrement : </label>
            " disabled="true"/>
       

       
            <label for="form_dateenregistrement">Date dernier stage : </label>
           
       

       
        <label for="form_activite">Activit&eacute; principale : </label>
       
       

       
        <label for="form_missions">Exemples de missions : </label>
       
       

    </fieldset>
    <fieldset>
    <legend align="top">Contacts</legend>
       
        <label for="form_contact">Contact : </label>
        <?php 
        // affichage des sous-catégorie appartenant à la première catégorie.
        echo "<select size='1' name='contact'>";  
        $rq="Select * from tuteur where codeentreprise=".$_POST['id'].";";
        $result= mysql_query ($rq) or die ("Select impossible");
        // $k = initialise le variable k
        $k=0;
        while ($dt=mysql_fetch_row($result))
        {
        echo "<option value=".utf8_encode($dt[0]).">".($dt[1])." ".utf8_encode($dt[2])." ".($dt[3])."</option>
";
        }   
        echo "</select>";
        ?>
        <?php
        $requete="SELECT * from tuteur Where Codetuteur=".$_POST['id']."";
        $resultrequete= mysql_query ($requete) or die ("Select impossible");
        $k =0;
        $dt3=mysql_fetch_row($resultrequete);
        ?>
       
        <label for="form_teltuteur">T&eacute;l&eacute;phone : </label>
        " disabled="true"/>
       

       
        <label for="form_courieltuteur">Couriel : </label>
        " disabled="true"/>
       

    </fieldset>
   
   
<?Php
}
?>
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

mon problème est que lorque je change de tuteur pour une entreprise cela ne m'affiche pas le numéro de telephone ni le courriel
est ce que quelqu'un pourrait m'aider.

je pense que le pb vient de cette parie du code de la page entreprises.php

<?php
        // Séléction de tous les enregistrements de la table Tuteur
   $rq1="Select * from tuteur WHERE codeentreprise=".$j.";";
   $result1= mysql_query ($rq1) or die ("Select impossible");
   echo "<form method='POST' action='valid.php'>";?>   <select size="1" name="contact" OnChange="sendData('id='+this.value,'include/consultentreprises.php')" onKeyUp="sendData('id='+this.value,'include/consultentreprises.php')">
<?php    

et de celle ci de la page consulentreprises.php

<?php 
        // affichage des sous-catégorie appartenant à la première catégorie.
        echo "<select size='1' name='contact'>";  
        $rq="Select * from tuteur where codeentreprise=".$_POST['id'].";";
        $result= mysql_query ($rq) or die ("Select impossible");
        // $k = initialise le variable k
        $k=0;
        while ($dt=mysql_fetch_row($result))
        {
        echo "<option value=".utf8_encode($dt[0]).">".($dt[1])." ".utf8_encode($dt[2])." ".($dt[3])."</option>
";
        }   
        echo "</select>";
        ?>
        <?php
        $requete="SELECT * from tuteur Where Codetuteur=".$_POST['id']."";
        $resultrequete= mysql_query ($requete) or die ("Select impossible");
        $k =0;
        $dt3=mysql_fetch_row($resultrequete);
        ?>
       
        <label for="form_teltuteur">T&eacute;l&eacute;phone : </label>
        " disabled="true"/>
       

       
        <label for="form_courieltuteur">Couriel : </label>
        " disabled="true"/>
       

    </fieldset>
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

POur vraiment résumer ce que je voudrais c'est recuperer le valuede ma balise option dans ma requete sql permettant dafficher les infirmations d'un contact, car avec le code actuel, les informations affichées correspondes au codeentreprise et non au codetuteur ainsi le

<?php
        $requete="SELECT * from tuteur Where Codetuteur=".$_POST['id']."";
        $resultrequete= mysql_query ($requete) or die ("Select impossible");
        $k =0;
        $dt3=mysql_fetch_row($resultrequete);
        ?>

me permet de selectionner les données du tuteur de code = (codeentreprise)
or je souhaiterais afficher les infos du tuteur de code = (codetuteur) celui selectionné ds la liste déroulante
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
à la lecture de tes derniers envois je
pense qu'il serait plus approprié que tu poses ton problème sur http://www.phpcs.com/
moi y a pas causer le PHP...SORRY!
;O)
Messages postés
94
Date d'inscription
vendredi 12 septembre 2008
Statut
Membre
Dernière intervention
19 mai 2012

c'est possible de déplacer une conversation entière?