Listes déroulantes liées

cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012 - 8 févr. 2009 à 20:16
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012 - 12 févr. 2009 à 23:03
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
9 févr. 2009 à 13:10
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)
0
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
11 févr. 2009 à 12:55
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>
0
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
11 févr. 2009 à 12:56
(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
}
?>
0
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
11 févr. 2009 à 12:58
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>
0

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

Posez votre question
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
11 févr. 2009 à 18:08
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
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
12 févr. 2009 à 18:42
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)
0
cs_mickael56100 Messages postés 94 Date d'inscription vendredi 12 septembre 2008 Statut Membre Dernière intervention 19 mai 2012
12 févr. 2009 à 23:03
c'est possible de déplacer une conversation entière?
0
Rejoignez-nous