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

jQuery Discussion :

retourner id d'une selection autocomplete


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut retourner id d'une selection autocomplete
    Bonjour à tous,


    Voici le contexte :

    Je fais un site web ou je répertorie sur une carte google map (API V3), des fournisseurs.
    Sur l'interface, il y a un input avec un autocomplete de jQueryUi, qui va récupérer dans ma BDD une liste de villes de France.
    Aujourd'hui j'arriver à retourner le libellé de la ville,
    Mais j'aimerais pouvoir retourner dans l'autocomplete le libellé et récupérer l'ID de la ville lorsque je valide mon formulaire.
    En cherchant sur google j'ai vu une piste sur le JSON, mais je n'ai pas compris comment retourner l'id..
    Je tiens à préciser que mes connaissances en JS/jQuery sont très limitées car je commence tous juste.
    Si quelqu'un pourrais m'aiguiller ?


    voici mon autocomplete.php
    Code php : 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
    <?php
    if(isset($_GET['q'])) {
        $q = htmlentities($_GET['q']); 
     
     
        try {
            $bdd = new PDO('mysql:host=localhost;dbname=distributeur', 'root', '');
        } catch(Exception $e) {
            exit('Impossible de se connecter à la base de données.');
        }
     
        $requete = "SELECT nom, id_ville FROM ville2 WHERE nom LIKE '". $q ."%' LIMIT 0, 10"; 
     
        $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
     
        while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
     
     
            echo $donnees['nom'] ."\n"; 
     
        }
     
    }


    et mon formulaire dans l'interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script>
            $(document).ready(function(){
                $("#appendedInputButton").autocomplete("autocomplete.php", {
                    selectFirst: true
                });
            });
    </script>
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form method="GET" action="index.php">	
          <input type="hidden" name="controller" value="ville">
          <label>Aller &agrave; :</label> 
     
          <div class="input-append">
     
                <input class="span11" id="appendedInputButton" type="text" name="id_ville" placeholder="Entrez une ville">
     
                 <button class="btn" type="submit">Go!</button>
          </div>
     
    </form>

    Merci d'avance,

    Bonne journée,

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    il me semble que autocomplete possède un evenement onSelect.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut

    En cherchant sur google j'ai vu une piste sur le JSON, mais je n'ai pas compris comment retourner l'id..
    En PHP, actuellement, tu retournes une simple chaine avec le nom des villes correspondantes séparées par un retour à la ligne echo $donnees['nom'] ."\n";.
    C'est à ce niveau qu'il faut que tu retournes un JSON et ensuite traiter ce JSON simplement avec Javascript pour faire ce que tu veux.

    Une inspiration : De PHP à Javascript : une méthode

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut
    Spacefrog, l'événement "onSelect" n'existe pas. Il y a l'événement "select" avec l'autocomplete de jQueryUi avec comme définition ceci :

    Triggered when an item is selected from the menu. The default action is to replace the text field's value with the value of the selected item.
    Canceling this event prevents the value from being updated, but does not prevent the menu from closing.
    Est-ce la même chose ou pas du tout ?


    Merci kaamo pour la source, je jette un oeil !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    http://jsfiddle.net/TFM23/

    en effet le onSelect c'est pour le datePicker, j'ai confondu

    là dans le select tu fais ce que tu veux dans la fonction ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/10/2010, 16h20
  2. récuperer une selection dans une iframe
    Par dib258 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/11/2005, 15h05
  3. ajout de colonnes sur une selection
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/08/2004, 17h44
  4. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16
  5. [Sybase] Select dans une select loop en C
    Par Claudio dans le forum Sybase
    Réponses: 2
    Dernier message: 29/04/2003, 18h06

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