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

JavaScript Discussion :

[AJAX] onChange pas assez fonctionnel


Sujet :

JavaScript

  1. #21
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Hein ? Ce qui signifie que y'a un <select> dans mon code ?

    J'avoue que là je ne pige pas ><

  2. #22
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par baggie Voir le message
    Hein ? Ce qui signifie que y'a un <select> dans mon code ?

    J'avoue que là je ne pige pas ><
    Moi non plus
    Quand je tape quelque chose dans ce champ, s'affiche dessous une liste de propositions correspondantes à ce que j'ai tapé (autocomplétion).

    Sur le onChange de ce champ, j'appelle une fonction qui m'affichera les détails correspondants à ce mail.
    Le problème est que la fonction se lance dès que je sélectionne un choix dans la liste (normal jusque là), mais elle ne prend pas en compte le choix que j'ai fait : juste ce que j'ai tapé auparavant.
    Ta liste, c'est pas un select ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #23
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    ben comme c'est une liste générée par l'autocomplete de YUI, je n'ai écrit nulle part de <select>.

    Voila ce que j'ai pour l'autocomplete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function autoCompInit()
        {
            yahooDataSource = new YAHOO.widget.DS_XHR("start_ajax.php",["\\n", ";"]);
            yahooDataSource.scriptQueryAppend = "Action=$_REQUEST[Action]&Etape=ajax_liste";
            yahooDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
            yahooAutoComp = new YAHOO.widget.AutoComplete('reclogm','reclogm_dd', yahooDataSource);
            yahooAutoComp.formatResult = function(oResultItem, sQuery) { return  (oResultItem[0] + " <span style='color:#006699'>" + oResultItem[1] + "</span>"); }
            yahooAutoComp.itemSelectEvent.subscribe(function(type,args) 
            { 
            	document.fRecherche.destination.value = args[2][1];
            } );
        }

  4. #24
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par baggie Voir le message
    ben comme c'est une liste générée par l'autocomplete de YUI, je n'ai écrit nulle part de <select>.


    Ah oui, effectivement : petit détail qu'il aurait été sympathique de préciser.

    Pas mon truc, ça.

    Bon courage ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #25
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Ben il me semblait l'avoir dit, mais peut-être pas assez explicitement ...

    Quand je tape quelque chose dans ce champ, s'affiche dessous une liste de propositions correspondantes à ce que j'ai tapé (autocomplétion).
    Merci quand même pour l'aide E.Bzz !

  6. #26
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par baggie Voir le message
    mais peut-être pas assez explicitement ...
    Ca c'est de l'euphémisme

    Non, rien dans cette phrase ne l'indique : quand on parle de liste sans précision, c'est un select (en tous cas dans un forum Javascript/HTML/CSS).
    Ca pourrait être <ul><li>...</ul>, mais comme tu peux faire un choix dans cette liste, c'était (pour moi) forcément un select ...

    Quand à l'autocomplétion, c'est uniquement une logique de traitement indépendante du type des objets impliqués.

    D'où la confusion (pas grave, ça aurait juste fait gagner du temps ...)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #27
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Je pensais juste que l'autocomplétion fonctionnait de la même manière, peu importe les méthodes ! Désolée pour la perte de temps =)

  8. #28
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Désolée pour le double post mais j'ai une question.

    Est-ce que le code javascript s'exécute "pas à pas" ?

    J'ai voulu mettre un focus sur mon champ où l'autocomplétion s'effectue, que celle-ci se fasse, et ensuite enlever le focus sur mon champ avec onBlur.

    Le problème est qu'on passe directement du focus() à blur() sans que l'autocompletion ne se soit faite.

    Y'a-t-il un moyen de dire "attendre que l'autocomplétion soit faite ET ensuite, enlever le focus sur l'objet input ?

    Voici mon champ où l'autocomplétion s'effectue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div id='liste'>
            <input type='text' class=d name='reclogm' id='reclogm' value='$reclogm' style='width:250px;' onBlur="ajaxinfo();">
    </div>
    Et sur le onBlur une fonction se déclenchera.

    Et ma fonction d' autocomplétion :
    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
        <script type='text/javascript' src="js/yui/build/yahoo/yahoo.js"></script>   
        <script type='text/javascript' src="js/yui/build/yahoo-dom-event/yahoo-dom-event.js"></script>
        <script type='text/javascript' src="js/yui/build/connection/connection.js"></script>
        <script type='text/javascript' src="js/yui/build/autocomplete/autocomplete.js"></script>
        <script type='text/javascript' src="js/yui/build/container/container-min.js"></script>
        <script type='text/javascript'>
        
        document.getElementById('reclogm').focus();
        
        var yahooDataSource;
        var yahooAutoComp;
        var objWaiter;
        var yahooTooltip;
    
        function autoCompInit()
        {
            yahooDataSource = new YAHOO.widget.DS_XHR("start_ajax.php",["\\n", ";"]);
            yahooDataSource.scriptQueryAppend = "Action=$_REQUEST[Action]&Etape=ajax_liste";
            yahooDataSource.responseType = YAHOO.widget.DS_XHR.TYPE_FLAT;
            yahooAutoComp = new YAHOO.widget.AutoComplete('reclogm','reclogm_dd', yahooDataSource);
            yahooAutoComp.formatResult = function(oResultItem, sQuery) { return  (oResultItem[0] + " <span style='color:#006699'>" + oResultItem[1] + "</span>"); }
        }
        
    YAHOO.util.Event.addListener(this,'load',autoCompInit);
    Je donne le focus, je tape ce que je veux dans mon champ, une liste s'affiche me proposant des trucs, et là au moment où je clique sur un truc dans la liste, il faudrait que mon champ perde le focus, au moins la fonction se déclenchera avec le onBlur() du haut.

    Est-ce que quelqu'un aurait une idée ?

  9. #29
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par baggie Voir le message
    et là au moment où je clique sur un truc dans la liste, il faudrait que mon champ perde le focus,


    Au moment où tu cliques dans la liste le champ perd le focus (par définition).
    Le onblur ne se déclenche pas ?

    Citation Envoyé par baggie Voir le message
    Y'a-t-il un moyen de dire "attendre que l'autocomplétion soit faite ET ensuite, enlever le focus sur l'objet input ?
    Il suffit de ne pas le gérer
    Quand l'autocompletion sera terminée, c'est toi qui changera le focus en cliquant dans le liste ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #30
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Le onblur ne se déclenche pas ?
    Ben non =/ Sûrement parce que ce n'est pas une liste déroulante mais une liste générée avec l'autocomplete ?

    Quand l'autocompletion sera terminée, c'est toi qui changera le focus en cliquant dans le liste ...
    Dans ces cas là le onBlur devrait pourtant se déclencher ?
    Mes problèmes doivent venir de l'autcomplete encore une fois :s

    Y'a pas moyen de bidouiller pour caler un focus() sur un autre champ après l'autocomplete ?
    J'ai en fait testé cette solution mais la saisie n'est même pas faite que le focus du premier champ se perd direct pour le second champ.

  11. #31
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Alors

    pour ton pb initial, je dirais qu'il faut que tu part plus sur une erreur SQL :

    truc@bidule.fr si le caractère @ est interprété (je ne pensais pas qu'il l'était) tu pourra utiliser

    LIKE "truc_bidule.fr"
    ou = "truc\@bidule.fr"

    Mais bon, ca se teste sur ta base en commande SQL, rien de bien méchant.

    Normalement, il existe des appels possible en fin de requête AJAX. cherche du coté de
    onComplete
    ou Callback

    je ne sais pas trop ce que tu utilise pour faire tes requêtes AJAX, donc a toi de voir dans le doc si tu vois quelque chose qui te rappelle ca. Sur mootool, je sais que je met dans le callback le code javascript à exécuter à la fin.

    Bon courage

  12. #32
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Merci de te pencher sur le problème pmithrandir.

    J'ai testé tes idées pour le SQL mais rien à faire, ça n'a strictement rien changé.

    Pour ce qui est de 'onComplete', c'est utilisé avec Scriptaculous, or j'utilise YUI :s (dommage parce que ça aurait pu le faire).

    Quant au callback(), j'ai pas bien compris ce que c'était (récupération d'une réponse) donc je vais essayer de trouver plus d'infos ^^

  13. #33
    Membre actif Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Points : 262
    Points
    262
    Par défaut
    Bon, ben même en ayant cherché des infos sur le Callback j'ai juste réussi à trouver que ça récupérait une réponse de je-ne-sais-pas-quoi-exactement.

    Une petite explication est-elle possible de ce qu'est le callback et/ou comment que ça s'écrit ?

Discussions similaires

  1. [AJAX] settimeout qui attend pas assez
    Par zooffy dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/01/2007, 10h52
  2. Groupbox pas assez dynamique
    Par gdpasmini dans le forum Windows
    Réponses: 6
    Dernier message: 31/03/2006, 22h33
  3. onChange pas déclanché sur une action javascript ?
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/06/2005, 16h32

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