Salut,
voila mon code ajax fonctionne bien avec firefox mais par contre ça ne fonctionne pas sous Internet explorer !
Pourtant sous IE tout est activé......
Je ne comprends pas pourquoi ça ne fonctionne pas !
Merci
Salut,
voila mon code ajax fonctionne bien avec firefox mais par contre ça ne fonctionne pas sous Internet explorer !
Pourtant sous IE tout est activé......
Je ne comprends pas pourquoi ça ne fonctionne pas !
Merci
Salut,
Sans code cela va être difficile de t'apporter même un embryon de réponse !
ERE
Voici mon code :
Code ajax
Page asp qui récupère mes données grâce à requête sql
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 function init() { <script> $("Code_Article").observe("change",RetourneInfo.bindAsEventListener($("Code_Article").value,'div_information','Code_Article')); function RetourneInfo(e, container, Le_Applicatif) { new Ajax.Request( 'donneinfo.asp', { method: 'get', onSuccess: function(data) { var donnees = eval('('+data.responseText+')'); console.log(donnees); $("prix_unitaire").innerHTML = donnees.prixUnitaire; $("prixunitaireCache").value = donnees.prixUnitaire; $("designation").innerHTML = donnees.designation; $("designationCache").value = donnees.designation; $("delai").innerHTML = donnees.delai; $("DelaiapproCache").value = donnees.delai; $("conso").innerHTML = donnees.conso; $("ConsoMACache").value = donnees.conso; $("unite").innerHTML = donnees.unite; }, parameters: {'Code_Article': $F(Le_Applicatif)} }); } } </script> <HTML> <HEAD> <meta http-equiv="Content-Language" content="fr"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Formulaire de saisie des AVK</title> <base target="contenu"> <style> <!-- div.Section1 {page:Section1;} --> </style> </head> <body bgcolor="#EBEBE0" style="font-family: Arial; font-size: 12pt" text="#003366" onLoad="init()"> <br> <p align="center"> <font size="5"> <span style="background-color: #C0C0C0">Saisissez les informations sur votre Avis de Variation de Consommation (AVK)</span> </font> </p> <p align="center"> <a href="Mode%20opératoire%20formulaire%20AVK.pdf">Accédez ici au mode opératoire AVK</a> </p> <br> <div id="div_information" > </div> <table align="center" cellpadding="5" cellspacing="5" style="border-collapse: collapse" bordercolor="#111111"> <tr> <td width="340"> <font size="2"><b> <font color="red">*</font> Code article (8 caractères) : </b></font> <br> <input name="Code_Article" id="Code_Article"size=8 maxlength=8 > <br> </td> <td width="340"> <font size="2"><b> Désignation : <font color="red"> <span id="designation" /></font> <input type="hidden" id="designationCache" name="Designation" value=""> </b></font> <br> </td> </tr> <tr> <td width="340"> <font size="2"><b> Prix unitaire : <font color="red"><span id="prix_unitaire" /></font> <input type="hidden" id="prixunitaireCache" name="Prix" value=""> </b></font> <br> </td> <td width="340"> <font size="2"><b> Délai d'approvisionnement : <font color="red"><span id="delai" /></font> <input type="hidden" id="DelaiapproCache" name="DelaiAppro" value=""> </b></font> <br> </td> </tr> <tr> <td width="340"> <font size="2"><b> Consommation mensuelle moyenne actuelle : <font color="red"><span id="conso" /></font> </b></font> <input type="hidden" id="ConsoMACache" name="Conso_Moy_Mens_Act" value=""> <br> </td> <td width="340"> </td> </tr> <tr> <td colspan="2" width="682"> <font size="2"><b> <font color="red">Soit :</font> consommation mensuelle moyenne à prévoir (exprimée dans l'unité de mesure standard PSFT) : </b></font> <br> <input name="Conso_Mens_APrev" id="ConsoMP" size=20 maxlength=30> <font color="red"><span id="unite" /></font> </td> </tr> </body> </html>
donneinfo.asp
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <!-- #include file="Connexion_SQL.asp"--> <% ' sélectionne les informations relatives à notre article renseigné dans le formulaire AVK dim Cstd ,Cpmp,CpmpD,Gart,KvM,KV,DLERP,DAPP,Conso, coutU , DelaiA 'variable qui stocke le données selon les différentes cas code = request.querystring("Code_Article") sql="select b.Description, b.[Coût STd], b.[Coût PMP], b.[Coût PMP déporté],a.[Groupe_art],a.[Unite],b.[Kv modifiée],b.[Kv],b.[Delai LREP (j)],b.[Delai d appro (j)]" & _ "from T_EXTR_BASAMONT b,T_CALCUL_ARTICLE_AMONT a " & _ "where A.ARTICLE = b.code_article and b.code_article ='" & code & "'" set rs=conn.execute(sql) do while not rs.EOF Cstd=rs("Coût STd") Cpmp=rs("Coût PMP") CpmpD=rs("Coût PMP déporté") Gart=rs("Groupe_art") KvM=rs("Kv modifiée") KV=rs("KV") DLERP=rs("Delai LREP (j)") DAPP=rs("Delai d appro (j)") If Gart="MRPRM" or Gart="MRPRMD" then coutU=Cstd elseif CpmpD<>"" or CpmpD<>999999 then coutU = CpmpD else coutU=Cpmp end if If rs("Kv modifiée")<>"" then ConsoM = rs("Kv modifiée") Else ConsoM = rs("Kv") End If If rs("Delai LREP (j)")<>"" then DelaiA = rs("Delai LREP (j)") Else DelaiA=rs("Delai d appro (j)") End If monRetourHTML = "{prixUnitaire: '"&coutU&"', designation: '"&rs("Description")&"',delai: '"&DelaiA&"', conso:'"&ConsoM&"', unite:'"&rs("Unite")&"'}" rs.movenext Loop Set rs=Nothing Response.Write monRetourHTML %>
Le problème est que je n'ai pas d'erreur ! Sauf que le code ajax ne s'exécute pas !
Normalement quand je rentre un Code_Article mes autres champs de mon formulaire doivent se renseigner automatiquement dans firefox aucun problème ça fonctionne impec mais dans internet explorer il ne se passe rien, il ne me génère aucune erreur.
Comment puis je voir si mon code ajax est interprété dans IE ?
Car sous firefox j'utilise Firebug.
merci
j'ai activé le debugger sous IE 6 et voila l'erreur :
C'est dans cette ligne :Erreur d ' éxécution Microsoft Jscript : objet attendu
Code : Sélectionner tout - Visualiser dans une fenêtre à part $("Code_Article").observe("change",RetourneInfo.bindAsEventListener($("Code_Article").value,'div_information','Code_Article'));
Je pense que tes paramètres sont mal passés.
Essaie :Envoyé par http://www.prototypejs.org/api/function/bindaseventlistener
La différence entre IE et FF est que quand tu as un gestionnaire d'évenements, sous FF le premier paramètre envoyé par le moteur js et toujours l'evenement lui même (e) alors que sous IE, l'evenement n'est pas passé en argument de la fonction mais accédé via window.event, donc en tout tu n'as que 2 arguments envoyés au lieu des 3 que tu attends.
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 function RetourneInfo(e) { var container = arguments[1]; var Le_Applicatif = arguments[2]; new Ajax.Request( 'donneinfo.asp', { method: 'get', onSuccess: function(data) { var donnees = eval('('+data.responseText+')'); console.log(donnees); $("prix_unitaire").innerHTML = donnees.prixUnitaire; $("prixunitaireCache").value = donnees.prixUnitaire; $("designation").innerHTML = donnees.designation; $("designationCache").value = donnees.designation; $("delai").innerHTML = donnees.delai; $("DelaiapproCache").value = donnees.delai; $("conso").innerHTML = donnees.conso; $("ConsoMACache").value = donnees.conso; $("unite").innerHTML = donnees.unite; }, parameters: {'Code_Article': $F(Le_Applicatif)} }); $("Code_Article").observe("change",RetourneInfo.bindAsEventListener($("Code_Article").value,'div_information','Code_Article'));
J'ai changé par ton code mais cela ne fonctionne toujours pas !!!
C'est bizarre j'ai aucune erreur ! On dirait qu'il ne reconnait pas ajax !
Car j'ai testé ma page donneinfo.asp avec un code article et cela m'affiche bien mes informations.
C'est bizarre !!!
Essaie de débuguer ligne a ligne:
Pour le fait que tu n'aies pas de message d'erreur, c'est souvent car l'erreur se situe dans une closure (crée par le bindAsEventListener) et que l'interpréteur js n'arrive pas a la remonter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function RetourneInfo(e) { var container = arguments[1]; var Le_Applicatif = arguments[2]; alert(e); alert(container); alert(Le_Applicatif); for(var v=0; v<arguments.length; v++) alert(arguments[v]);
j'ai essayé et j'ai 3 fenêtre qui s'affiche :
avec :
triangle jaune point exclamation [object]
triangle jaune point exclamation div_Information
triangle jaune point exclamation Code_Article
Dans le code d'article qui te pose probleme, tu n'aurais pas un ' dans ton contenu ? Il faut que tu fasses échapes les caractères dangereux au moment d'écrire le JSON.
Par ailleurs,
Au lieu de faire un eval, ajoute dans tes options de requete AJAX, tu auras alors au retour de ta requete AJAX l'objet directement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part evalJSON: "force"
Enfin,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 onSuccess: function(data) { data.responseJSON
Quand tu fais un bindAsEventListener, le premier parametre est le contexte d'execution de la fonction (autrement dit qui est this quand ta fonction est appelée). Les autres parametres sont envoyés après l'objet evenement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $("Code_Article").observe("change",RetourneInfo.bindAsEventListener($("Code_Article").value,'div_information','Code_Article'));
Comme visiblement this ne t'intéresse pas et l'evenement non plus, je ferai plus simple à ta place :
qui peut s'écrire aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $("Code_Article").observe("change", function(e) { RetourneInfo($("Code_Article").value,'div_information','Code_Article'); });
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $("Code_Article").observe("change", function(e) { RetourneInfo($F("Code_Article"),'div_information','Code_Article'); });
Partager