IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

remplissage dynamique liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 7
    Points
    7
    Par défaut remplissage dynamique liste déroulante
    Bonjour je viens vous demandez de l'aide encore une fois.
    La ce que je veux faire c'est de récupérer l'id du client pour après faire un requete sql qui séléctionne les ordinateurs existant que pour le client que j'ai sélectionné.
    Mais la je n'arrive pas a récupérez l'id du client je pense qu'il faut que je fasse une requête en ajax mais je ne sais pas comment faire je vous montre ci dessous les bout de code qui sont utiles a ce que je veux faire.

    ici c'est la ou on faire la recherche de client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      <tr class="fond1"><td>Client :</td><td><input   type="text" name="client" autocomplete="off" id="clientXML" size="45" value="<?php echo $nom," ", $prenom; ?>" /></td>
    //pour afficher le résultat de la requete ajax ci dessous
                <tr><td><div id="client"></div></td></tr>
    qui est combiner avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
        var options = {
            varname:"search",
            noresults:"Aucun résultat",
            script:"ajax_client.php?",
            timeout: 5000000,
            callback: function (obj) { document.getElementById('clientId').value = obj.id; }
        };
     
        var as_xml = new AutoSuggest('clientXML', options);
    </script>
    et l'ajax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
     
    header("Content-Type: text/xml");
     
    echo("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
     
    echo("<results>");
     
    $search = $_GET["search"];
    //requete pour la recherche de client 
    $r = $bdd2->query("select * from esf_clients where societe like '%".$search."%' or nom like '%".$search."%' or prenom like '%".$search."%';");
    while($ligne = $r->fetch())
    {
        $idclient = $ligne["idclient"];
        $societe = $ligne["societe"];
        $nom = $ligne["nom"];
        $prenom = $ligne["prenom"];
        $email = $ligne["email"];
     
        $valeur = utf8_encode("$societe ($prenom $nom)");
        $info = utf8_encode($email);
    //affiche le nom, prenom et email du client
        echo "<rs id=\"".$idclient."\" info=\"".$info."\">".$valeur."</rs>";
    }
     
    echo("</results>");
     
    ?>
    et je récupère l'id comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(document).ready(function(){
        $("#client").click(function(){
            // element
            var elt = this;
    // id de l'element
            var idElt = this.getAttribute('id');
        });
     
    });

    maintenant la ou je fait ma requête + ma liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
                        // requête pour sélectionner les ordinateur que pour le client sélectionner
                        $reponse = $bdd->query('SELECT * FROM materiel WHERE idclient="'.$idclient.'"');
                        //tant qu'il y a des ordinateur les afficher
                        while ($donnees = $reponse->fetch()) {
                            ?>
                            <option  value="<?php echo $donnees['id'];?>"><?php echo $donnees['nom']," ", $donnees['processeur'];?></option>
                        <?php  } ?>
                    </></select></td></tr>
    Quand je sélectionne mon client ma liste déroulante ne se remplis pas.
    voici ma table de materiel :
    Nom : materiel.png
Affichages : 207
Taille : 15,3 Ko

    voici ma table de ticket :
    Nom : ticket.png
Affichages : 210
Taille : 19,3 Ko

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    437
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 437
    Points : 184
    Points
    184
    Par défaut
    Le client doit t'il prealablement se connecter a son espace membre ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('clientId').value = obj.id;
    La 1ère chose à savoir c'est que l'attribut <.... id="...."> DOIT ETRE UNIQUE.

    Or là, j'ai bien l'impression que tu as un listing client sous forme de <table>.
    Donc, pas possible de mettre <.... id="clientId"...> pour chaque ligne.

    Par contre, et là je vois que tu utilises jQuery, on peut mettre à la place une class, et un attribut data-id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <.... class="clientId" data-id="<?php echo $ligne['id']; ?>">
    Auquel cas, le jQuery devient :
    Code jQuery : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $(document).ready(function(){
        $(".clientId").click(function(){
           // id du client
           var idClient = $(this).data('id');
    alert( idClient );
        });
    });

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    non il n'as pas besoin ceci me sert pour une gestion de ticket du coups c'est l'entreprise qui remplis les informations.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    bojour jreau enfaite le clientid c'est sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        <input type="hidden" id="clientId" name="idclient" value="<?php echo($idclient); ?>" />
    j'ai oublier de mettre c'est ligne

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Remplace dans le 1er code que tu montres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                <tr><td><div id="client"></div></td></tr>
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                <tr><td><div class="BtnClient" data-id="<?php echo $idclient; ?>"></div></td></tr>
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(document).ready(function(){
        $(".BtnClient").on('click',function(){
           // id du client
           var idClient = $(this).data('id');
    alert( idClient );
          // ici, on peut appeler via Ajax le script PHP externe
        });
    });

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Juin 2017
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2017
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    ok merci, c'est bon j'ai changer ce que tu m'as dis maintenant il faut que ma liste déroulante se remplisse par rapport a l'id du client parce que j'ai des ordinateurs lier a un client. J'ai lu qu'il fallait refresh la liste déroulante mais j'ai rechercher et tester plein de choses mais cela ne fonctionne pas. Parce quand je clique sur un client je veux que si il y a des ordinateurs qui existent sa les affichent dans ma liste déroulante pour le sélectionner.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] remplissage dynamique d'une liste déroulante
    Par bernards111 dans le forum IHM
    Réponses: 8
    Dernier message: 01/12/2010, 18h28
  2. Remplissage dynamique d'une liste
    Par santati dans le forum Struts 2
    Réponses: 2
    Dernier message: 15/04/2008, 15h16
  3. Réponses: 2
    Dernier message: 01/05/2007, 17h15
  4. remplissage de liste item
    Par ayyouta dans le forum Oracle
    Réponses: 3
    Dernier message: 09/04/2006, 10h41
  5. Champs dynamiques : listes déroulantes liées
    Par Mr N. dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/12/2005, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo