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 :

Pour aller plus loin avec ajax.Autocompleter [script.aculo.us]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut Pour aller plus loin avec ajax.Autocompleter
    Bonjour

    j'utilise ajax.Autocompleter fourni par script.aculo.us 1.8.3, tout fonctionne bien. Cependant ya un truc que j'aimerai faire c'est renvoyer un message d'une façon ou d'une autre à l'utilisateur pour lui dire que ya pas de suggestion et que ça sert à rien d'attendre.

    J'ai bien vu indicator qui permet de faire patienter mais pour dire que la personne a pas de chance j'ai pas trouvé.

    Si la solution est évidente, merci de me l'expliquer clairement, je ne suis pas très fort en javascript.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Bonjour,

    La mauvaise nouvelle, c'est que cette option n'a pas été prévu dans Ajax.Autocompleter.
    La bonne nouvelle, c'est que c'est facile à implémenter :
    Il suffit de créer une classe héritant de Ajax.Autocompleter :
    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
     
    // héritage
    var MyAjaxAutoCompleter = Class.create(Ajax.Autocompleter, {
      // on surcharge le constructeur : on lui fait faire comme l'original avec 
      // $super, puis on gère une nouvelle option onNoItemsReturned  
      // qui est une fonction (par défaut ne fait rien)
      initialize:function($super, element, update, url, options) {
        $super(element, update, url, options);
        this.onNoItemsReturned = options.onNoItemsReturned || Prototype.emptyFunction;
      },
      // surcharge de onComplete
      onComplete: function($super, request) {
        // on fait ce que fait la classe mère
        $super(request);
        // on teste si on a 0 éléments renvoyés
        if(this.entryCount == 0) {
          // si c'est le cas, on execute notre fonction
          this.onNoItemsReturned();
        }
      }
    });
    Ensuite, on utilise notre classe plutôt que celle de scriptaculous en n'oubliant pas de définir notre nouvelle fonction en option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var ac = new MyAjaxAutoCompleter(
      $("autoCompleteField"), 
      $("divResultats", 
      "/foo/bar", {
        onNoItemsReturned: function(){ 
          alert("pas de resultat");
        }
      }
    );
    Je me demande même si on ne peut pas "patcher" Ajax.Autocompleter en la redéfinissant elle même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Ajax.Autocompleter = Class.create(Ajax.Autocompleter, {
      initialize:function($super, element, update, url, options) {
        $super(element, update, url, options);
        this.onNoItemsReturned = options.onNoItemsReturned || Prototype.emptyFunction;
      },
      onComplete: function($super, request) {
        $super(request);
        if(this.entryCount == 0) {
          this.onNoItemsReturned();
        }
      }
    });
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    merci

    je vais essayer votre solution.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    ça marche bien.

    Merci pour le coup de main.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2012, 16h04
  2. Défi : Toutes les semaines un peu de code pour aller plus loin avec Windows 7
    Par Jérôme Lambert dans le forum Développement Windows
    Réponses: 41
    Dernier message: 05/01/2012, 12h00
  3. [RDFa] Pour aller plus loin avec RDFa
    Par dourouc05 dans le forum Web sémantique
    Réponses: 0
    Dernier message: 23/05/2011, 10h12

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