|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2007 Messages : 14 ![]() |
Bonjour,
j'ai fait le grand saut hum hum, ce n'est pas de tout repos... J'ai commencé par un script ridiculement facile, mais j'ai déjà un souci Mon script permet lorsque l'on clique sur le lien "cliquez ici" de mettre à jour un select php sans recharger toute la page. (Par la suite je souhaite faire la même chose avec un setTimeout, mais là n'est pas la question) Mon script marche super bien sous firefox... mais pas sous ie6 ni ie7. Sous explorer il fait ma fonction une fois mais pas deux... Et lorsqu'il lance la fonction la première fois il fait un select qui n'est pas bon. Voici mon code, si quelqu'un a une idée je suis preneur... Code :
Une idée? |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Code :
Déjà qu'avec un code écrit "dans les règles de l'art" il peut y avoir des différences d'interprétation... là tu t'en rajoute ! EDIT : comme j'avais pas été jusqu'au bout, je rectifie : dans LES fonctions... |
||
|
00
|
|
|
#3 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Alors, selon moi le problème est le suivant (en prenant en compte mon post précédent...) :
1°) FF interprète tes variables et leur transmission comme tu le souhaites... 2°) Pour IE, il y a une variable globale httpRequest, mais elle est undefined... Au premier passage dans ta fonction Ajax, il lui attribue du coup la valeur de ta variable httpRequest locale -> tout se passe comme tu le souhaites. Aux passages suivants, la globale étant définie, il ne la modifie plus, et comme tu ne transmets rien dans handleAJAXReturn(), il utilise la valeur de la globale. Tout se déroule correctement, mais avec les mêmes paramètres, il n'y a plus de changement... |
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : juin 2007 Messages : 14 ![]() |
Merci pour ta réponse,
c'est très juste et je l'ai remarqué, du coup j'ai laissé la variable globale et viré l'autre ce qui donne: Code :
mais rien n'a faire ça ne change pas, en réalité c'est vraiment étrange car sous explorer 6 il ne met rien à jour sauf si je passe au préalable sur la page select_identites.php |
||
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 14 ![]() |
dans l'idée je suis d'accord avec ce que tu dis:
Citation:
je le résous comment? |
|
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Ben moi je laisserais le tout dans une seule fonction :
Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 14 ![]() |
Il ne bouge plus si je remplace ton code... ni sous ff ni sous ie.
A aucun moment dans ton code tu ne définies httpRequest ? |
|
|
00
|
|
|
#8 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Euh...
Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#9 | |
![]() ![]() Inscription : janvier 2006 Messages : 1 107 ![]() |
Citation:
Déclarer une variable permet de l'attacher au scope de son objet "parent". C'est a dire que si tu déclares une variable dans une fonction, elle est attachée à la fonction et ne sera visible que depuis cette fonction. Si tu déclares une variable hors d'une fonction, son parent c'est l'objet window, donc elle sera accessible de partout. Par contre, si tu utilises une variable sans la déclarer, même dans une fonction, cette variable sera attachée automatiquement à l'objet window, donc accessible partout. |
|
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : juin 2007 Messages : 14 ![]() |
rien à faire ça ne veut pas...
j'ai légèrement changé de méthode, mais c'est sensiblement pareil: Code :
Comme tu l'as dit, j'ai l'impression que quand je re-clique, il ne reconstruit pas la variable sous ie il garde le contenu de l'ancienne... |
||
|
|
00
|
|
|
#11 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Code :
Le send() est TOUJOURS à la fin
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#12 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Pour essayer de simplifier le cheminement d'une requête Ajax :
1) Tu crées l'objet qui va envoyer la requête (dans ton cas httpRequest) avec plein de conditions car cet objet n'est pas identique en fonction des navigateurs... 2) Tu ouvres un passage entre javascript et le serveur avec des paramètres. Attention, jusque là ce passage, tu l'as juste ouvert (c'est peut-être pour ça que ça s'appelle 'open(...)'), mais rien n'est transmis ! 3) Pour ceux qui pensent qu'Ajax, c'est que du javascript, attention ça va barder et j'entend déjà les puristes et les incultes qui vont me clouer au pilori !!! Ensuite, il faut prévenir javascript qu'il va lui arriver plein de trucs à la gueule qui ne sont pas du javascript : le onreadystatechange qui dit à javascript : "voilà comment te démerder avec ce que tu vas recevoir..." 4) On dit à javascript : tout ce qui n'est pas readystate 4 (données en cours de réception) et status 200 (mon serveur dit tout s'est bien passé) je l'ignore... (Attention, je parle bien d'un cas large, pas de la gestion des codes de retour serveur...) 5) On continue à dire à javascript : attention, quand tu auras readystate 4 ET status 200, tu auras aussi avec un résultat... utilise-le comme [du texte, du XML, du JSON, ce que je veux] et fais-en ça (ici, tout ce qui peut suivre le onreadystatechange et utilsant le response de la requête) 6) Une fois que tout cela est fait, on envoie la requête... le fameux send(...) et sans TOUT ce qui précède, javascript ne sait pas gérer les retours du send()
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
Copyright © 2000-2012 - www.developpez.com