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

Bibliothèques & Frameworks Discussion :

Ajax-autocompleter feedback complet [script.aculo.us]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Par défaut Ajax-autocompleter feedback complet
    Bonjour !

    J'espère que vous allez pouvoir m'aider...

    J'ai employé l'ajax autocompleter de scriptaculous, qui fonctionne sans problème.
    Mon objectif est d'orienter l'utilisateur vers une modification d'une donnée existante, ou la création d'un nouvel enregistrement.

    Pour ce faire, j'aurais besoin de savoir si la valeur de l'input a été renseignée par le script d'autocomplétion (une valeur existante), ou s'il s'agit d'une nouvelle valeur.
    J'espérais pouvoir tirer parti de la valeur complète retournée par Ajax : si c'est du <ul></ul>, c'est que c'est du nouveau, si c'est du <ul><li>valeur</li>...</ul>, c'est que c'est de l'existant...

    Mais je ne sais pas trop comment récupérer la valeur originale transmise par Ajax...
    Je n'ai qu'une valeur d'élément sélectionné grâce à un script afterUpdateElement, alors que justement, il n'y a pas d'update dans le cas d'un nouvel élément...

    Comment faire ?

    Merci beaucoup !

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    En fait le afterUpdateElement ne sera éxécuté que si l'utilisateur choisi une valeur existante ... non ? Peut-être que tu peux jouer là dessus

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Par défaut
    Merci pour ta réponse...

    Et oui,
    Mais si l'utilisateur n'effectue pas de sélection, aucun script n'est exécuté (ou exécutable semble t-il).
    Et j'aimerais bien trouver comment savoir que l'utilisateur n'a pas fait de sélection...

  4. #4
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Citation Envoyé par yakou32 Voir le message
    Et oui,
    Mais si l'utilisateur n'effectue pas de sélection, aucun script n'est exécuté (ou exécutable semble t-il).
    Et j'aimerais bien trouver comment savoir que l'utilisateur n'a pas fait de sélection...
    Avec un truc du genre :
    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
      <input type="text" name="recherche" id="recherche"/>
      <input type="text" name="recherche_existingItem" id="recherche_existingItem" value="false"/>
      <div id="resultat">
     
      </div>
      <script type="text/javascript">
        new Ajax.Autocompleter("recherche", "resultat", url, {
          afterUpdateElement:function(field, selection){
            $(field.identify() + "_existingItem").value = "true"
          }
        });
        $("recherche").observe("keyup", function(e) {
          $(this.identify() + "_existingItem").value="false";
        }.bindAsEventListener($("recherche")));
      </script>
    tu peux savoir si l'utilisateur n'a pas fait de sélection, mais tu ne peux pas savoir si il a exactement tapé un élément de la liste...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Par défaut
    Merci beaucoup pour ta réponse.
    Si j'arrive à faire fonctionner ton script, il devrait répondre exactement à mon problème.
    Je vais me pencher de près dessus, mais il semble que ton niveau de JavaScript dépasse de très loin le mien ; tu utilises des 'formulations' que je ne connais pas trop, donc il va falloir que je m'accroche pour comprendre...
    Je te tiens au courant...
    Merci encore !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Par défaut
    Ok, merci beaucoup, ça marche nickel !

    Juste un tout petit détail : si l'on sélectionne l'item avec la touche entrée, on repasse en false...
    Serait-il possible d'observer le keyup des touches à l'exclusion de la touche entrée ?

  7. #7
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Citation Envoyé par yakou32 Voir le message
    Je vais me pencher de près dessus, mais il semble que ton niveau de JavaScript dépasse de très loin le mien ; tu utilises des 'formulations' que je ne connais pas trop, donc il va falloir que je m'accroche pour comprendre...
    Attention, c'est plus probablement mon niveau de "prototype" qui dépasse le tien. Tu utilises probablement ce framework par "obligation" vis à vis de scriptaculous. Je pense personnellement que l'utilisation de scriptaculous et de prototype nécessite une période minimum d'apprentissage et de la rentabilité : Ce framework est lourd à charger ; Si tu décides de l'utiliser, utilise le jusqu'au bout. Ton code "perso" sera plus léger, plus facilement crossbrowser. Pour celà, il n'y a pas 50 façons, va voir la doc et regarde les API...
    Bon courage

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

Discussions similaires

  1. ASP et AJAX AutoComplete
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 27/11/2009, 21h56
  2. [script.aculo.us] [Prototype] Ajax.Autocompleter (plusieurs paramètres)
    Par seb92 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 19/09/2007, 17h40
  3. [AJAX] autocompletion sur menu deroulant
    Par bourvil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2007, 15h44
  4. [AJAX] autocompletion pas a pas
    Par boulika dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2006, 11h25
  5. [AJAX] ajax - autocompletion
    Par spectorrr dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2006, 16h08

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