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.updater sous IE


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
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut Ajax.updater sous IE
    Bonjour,

    Je rencontre un problème avec la fonction Ajax.updater uniquement sous IE ; voici mon code :

    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">
     
    Event.observe(window, 'keyup', init, false);
     
    function init(){
         Event.observe('codepostal', 'keyup', complete_select(), false);
    }
     
    function complete_select(){
         var url = 'php/complete_select.php';
         var pars = 'codepostal='+escape($F('codepostal'));
         var target = 'champville';
         var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars});
    }
     
     
    </script>
     
    ...
     
    <div class="titre">Code postal</div>
    	<div class="champ"><input class="inputtext" type="text" name="codepostal" id="codepostal" size="5" /></div>
    	<hr>
    	<div class="titre">* Ville</div>
    	<div class="champ" id="champville"><select name="ville"><option value="">Indiquer un code postal</option></select></div>
    Si quelqu'un a une idée, je suis preneur (il indique une erreur JS sous IE6, et rien sous IE7, où il ne se passe tout simplement rien lors de la saisie de caractères dans le champ codepostal).

    Edit : en ajoutant un alert("plop"); dans le corps de ma fonction "complete_select", je m'aperçois qu'elle n'est tout simplement pas appelée.

    Edit : de même avec la fonction init().

  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
    Salut,

    Quelle version de Prototype utilises-tu ?
    Depuis la version 1.6, il n'est plus possible de spécifier le capture sur Event.observe. Tu as mis false, mais pour info, ca n'existe plus.
    Je ne pense pas que ta facon de déclare ton handler soit bonne (en fait ca m'étonne que ca fonctionne sans parler de IE, pas IE) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Event.observe('codepostal', 'keyup', complete_select(), false);
    // devrait s'écrire
    Event.observe('codepostal', 'keyup', complete_select);
    Quand tu spécifies le handler, c'est l'objet fonction que tu dois passer, si tu mets les parenthèses, c'est le résultat de l'execution la fonction que tu passes en handler. Et comme il n'y a pas de return dans ta fonction, tu renvoies undefined.

    Par ailleurs, cette méthode ne fonctionnera pas sous IE (tu renvoies bien dans ta requete AJAX une liste d'options ?). IE n'accepte pas de faire un update d'un select avec des options... Il faut construire les option à la main pour IE. Donc renvoyer les données au formt JSON par exemple, vider le select et reconstuire les options une à une... donc pas de Ajax.Updater...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    Modification faites ça fonctionne effectivement toujours sous FF, mais pas sous IE.

    Par contre je ne modifie pas juste les options, je remplace tout le contenu du div par un nouveau select, le select d'origine est alors écrasé.

    Et comme noté au dessus, c'est la fonction init qui semble ne pas s'initialiser

  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
    Bon alors j'ai lu un peu vite...

    Sinon à propos de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Event.observe(window, 'keyup', init, false);
    Pourquoi observer 'keyup' pour ajouter un observer sur 'keyup' sur un autre objet ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Event.observe(window, 'load', init);// ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 23
    Par défaut
    Merci

    Et je coure me cacher : j'avais envisagé que 'keyup' ne soit pas une bonne idée même si elle fonctionnait sous FF, et j'avais remplacé par... "onload"

Discussions similaires

  1. Update sous Access
    Par Sk8cravis dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2009, 14h29
  2. optimisation requete insert ou update sous postgres
    Par peppena dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/03/2007, 11h21
  3. Réponses: 1
    Dernier message: 15/05/2006, 13h48
  4. [UPDATE]Sous-requetes avec plusieurs nuplets
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/07/2005, 18h28
  5. syntaxe d'un update sous SQL SERVER
    Par wello00 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/12/2004, 14h13

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