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] Autocompleter fonctionne quand il veut


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [AJAX] Autocompleter fonctionne quand il veut
    Bonjour,
    J'utilise "Autocompleter" d'ajax dans une page php, pour deux input renseignés via une rqt Mysql et à ce stade tous se passe bien.
    Souhaitant rajouter deux autres input identiquement avec la même rqt, mais seul l'argument change pour le résultat de retour, et là ça focntionne pas.
    Première intérrogation, tes données ne sont pas bien saisies en base, ou bien erreur dans la rqt, ben à première vue, non.

    Code 1ère version qui fonctionne :

    page php contenant les input et l'appel de la fonction =
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type=text id="autocomplete_aero1" name="depart_aero1" class="input" value="'.((isset($_POST['depart_aero1'])) ? $_POST['depart_aero1'] : '').'" size="30">
    <input type=text id="autocomplete_aero2" name="retour_aero2" class="input" value="'.((isset($_POST['retour_aero2'])) ? $_POST['retour_aero2'] : '').'" size="30">
    <div id="autocomplete_choices" class="autocomplete"></div>
    <script>
    new Ajax.Autocompleter("autocomplete_aero1", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {paramName: "value"});
    new Ajax.Autocompleter("autocomplete_aero2", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {paramName: "value"});
    </script>

    rqt mysql :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql->query('SELECT * FROM '.TABLE_AIRPORTS.' WHERE aero_pays = "'.$_GET['pays'].'" AND aero_nom LIKE "%'.$_POST['value'].'%"');

    Code 2e version qui fonctionne pas :

    page php contenant les input et l'appel de la fonction =
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <input type=text id="autocomplete_aero1" name="depart_aero1" class="input" value="'.((isset($_POST['depart_aero1'])) ? $_POST['depart_aero1'] : '').'" size="30">
    <input type=text id="autocomplete_aero3" name="depart_aero2" class="input" value="'.((isset($_POST['depart_aero2'])) ? $_POST['depart_aero2'] : '').'" size="30">
    <input type=text id="autocomplete_aero4" name="retour_aero1" class="input" value="'.((isset($_POST['retour_aero1'])) ? $_POST['retour_aero1'] : '').'" size="30">
    <input type=text id="autocomplete_aero2" name="retour_aero2" class="input" value="'.((isset($_POST['retour_aero2'])) ? $_POST['retour_aero2'] : '').'" size="30">
    <div id="autocomplete_choices" class="autocomplete"></div>
    <script>
    new Ajax.Autocompleter("autocomplete_aero1", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {paramName: "value"});
    new Ajax.Autocompleter("autocomplete_aero2", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {paramName: "value"});
    new Ajax.Autocompleter("autocomplete_aero3", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=ie", {paramName: "value"});
    new Ajax.Autocompleter("autocomplete_aero4", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=ie", {paramName: "value"});
    </script>
    rqt mysql :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql->query('SELECT * FROM '.TABLE_AIRPORTS.' WHERE aero_pays = "'.$_GET['pays'].'" AND aero_nom LIKE "%'.$_POST['value'].'%"');

    J'ai modifié le paramètre pour la rqt Mysql en "pays=fr" pour tous les inputs, afin de tester et là ça fonctionne !
    Je vous assure que j'ai bien des enregistrements en BD dans la table TABLE_AIRPORTS avec le critère "ie".
    C'est comme si mes nouveaux enregistrements n'étaient pas pris en compte ?!
    Si quelqu'un a une idée elle sera la bienvenue car je suis vraiment ennuyé, bloqué dessus depuis 3 jours, je deviens fou...
    Merci.

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Dans tes requetes sql, tu récupères un paramètre en GET et l'autre en POST ... A mon avis, ca doit être difficile de passer les deux en même temps ^^

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Dans tes requetes sql, tu récupères un paramètre en GET et l'autre en POST ... A mon avis, ca doit être difficile de passer les deux en même temps ^^
    Merci pour ta remarque DoubleU.

    En effet, je n'avais pas fais attention à ça !
    Alors dans ce cas, est ce que je peux passer un 2e argument dans mon appel Ajax ?

    Un peu comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Ajax.Autocompleter("autocomplete_aero1", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {paramName: "value","pays"});
    Mais dans ce cas ou je le renseigne pour le lui passer ?

    Merci.

  4. #4
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    http://www.prototypejs.org/api/ajax/options

    Soit tu utilises une chaine ou tes paramètres sont encodés comme dans une url pour un GET (nom1=valeur1&nom2=valeur2), soit tu utilises un hash ({nom1 : valeur1, nom2 : valeur2})

    Essaie de ne pas mélanger les deux comme tu fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Ajax.Autocompleter("autocomplete_aero1", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php", {paramName: "value", pays : "fr"});

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    http://www.prototypejs.org/api/ajax/options

    Soit tu utilises une chaine ou tes paramètres sont encodés comme dans une url pour un GET (nom1=valeur1&nom2=valeur2), soit tu utilises un hash ({nom1 : valeur1, nom2 : valeur2})

    Essaie de ne pas mélanger les deux comme tu fais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Ajax.Autocompleter("autocomplete_aero1", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php", {paramName: "value", pays : "fr"});
    Merci pour les conseils DoubleU.
    Je vais tester ça.
    Je te tiens au courant .

  6. #6
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Autocompleter fonctionne quand il veut (RESOLU)
    Bonne nouvelle DoubleU

    J'ai réussi à corriger mes erreurs, ouf ça marche.

    Voici mon code modifiée si cela peut servir à d'autres.

    page php contenant les input et l'appel de la fonction =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <input type=text id="autocomplete_aero1" name="depart_aero1" class="input" value="'.((isset($_POST['depart_aero1'])) ? $_POST['depart_aero1'] : '').'" size="30"><br />
    <input type=text id="autocomplete_aero3" name="depart_aero2" class="input" value="'.((isset($_POST['depart_aero2'])) ? $_POST['depart_aero2'] : '').'" size="30"><br />
    <input type=text id="autocomplete_aero4" name="retour_aero1" class="input" value="'.((isset($_POST['retour_aero1'])) ? $_POST['retour_aero1'] : '').'" size="30"><br />
    <input type=text id="autocomplete_aero2" name="retour_aero2" class="input" value="'.((isset($_POST['retour_aero2'])) ? $_POST['retour_aero2'] : '').'" size="30"><br />
    <div id="autocomplete_choices" class="autocomplete"></div>
    					new Ajax.Autocompleter("autocomplete_aero1", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {method: "GET", paramName: "value", minChars: 1});
    					new Ajax.Autocompleter("autocomplete_aero2", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=fr", {method: "GET", paramName: "value", minChars: 1});
    					new Ajax.Autocompleter("autocomplete_aero3", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=ie", {method: "GET", paramName: "value", minChars: 1});
    					new Ajax.Autocompleter("autocomplete_aero4", "autocomplete_choices", "'.ACCESSFOLD.'Modules/ajax/aeroports.php?pays=ie", {method: "GET", paramName: "value", minChars: 1});
    rqt mysql =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql->query('SELECT * FROM '.TABLE_AIRPORTS.' WHERE aero_pays = "'.$_GET['pays'].'" ');
    Merci encore pour ton aide DoubleU

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/07/2013, 14h23
  2. [CakePHP] Autocompletion Ajax ne fonctionne pas sous ie
    Par Tybaal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 25/09/2011, 01h41
  3. [4.1.19-max] requête fonctionnant quand elle veut
    Par Cyberstein dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/06/2007, 15h39
  4. [FLASH MX] Flash boude quand PHP veut lui parler :(
    Par Huntress dans le forum Flash
    Réponses: 11
    Dernier message: 03/11/2004, 12h16
  5. BCP marche quand il veut !!!!
    Par chris92 dans le forum Outils
    Réponses: 2
    Dernier message: 24/03/2003, 09h41

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