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 OK avec firefox , KO avec Internet Explorer


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut Ajax OK avec firefox , KO avec Internet Explorer
    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

  2. #2
    Membre Expert 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
    Par défaut
    Quel code?

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Sans code cela va être difficile de t'apporter même un embryon de réponse !

    ERE

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    Voici mon code :

    Code ajax

    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>
    Page asp qui récupère mes données grâce à requête sql
    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
    %>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    au fait j'utilise prototype.js pour ajax....

  6. #6
    Membre Expert 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
    Par défaut
    Et c'est quoi l'erreur sous IE ...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    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

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    j'ai activé le debugger sous IE 6 et voila l'erreur :

    Erreur d ' éxécution Microsoft Jscript : objet attendu
    C'est dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("Code_Article").observe("change",RetourneInfo.bindAsEventListener($("Code_Article").value,'div_information','Code_Article'));

  9. #9
    Membre Expert 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
    Par défaut
    Je pense que tes paramètres sont mal passés.

    Citation Envoyé par http://www.prototypejs.org/api/function/bindaseventlistener
    var obj = { name: 'A nice demo' };

    function handler(e) {
    var tag = Event.element(e).tagName.toLowerCase();
    var data = $A(arguments);
    data.shift();
    alert(this.name + '\nClick on a ' + tag + '\nOther args: ' + data.join(', '));
    }

    Event.observe(document.body, 'click', handler.bindAsEventListener(obj, 1, 2, 3));
    // Now any click on the page displays obj.name, the lower-cased tag name
    // of the clicked element, and "1, 2, 3".
    Essaie :

    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'));
    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.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    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 !!!

  11. #11
    Membre Expert 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
    Par défaut
    Essaie de débuguer ligne a ligne:

    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]);
    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.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 95
    Par défaut
    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

  13. #13
    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
    Citation Envoyé par bambino13 Voir le message
    Car j'ai testé ma page donneinfo.asp avec un code article et cela m'affiche bien mes informations.
    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
    1
    2
    3
     
    onSuccess: function(data) {
    data.responseJSON
    Enfin,
    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'));
    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.
    Comme visiblement this ne t'intéresse pas et l'evenement non plus, je ferai plus simple à ta place :
    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');
    });
    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($F("Code_Article"),'div_information','Code_Article');
    });

Discussions similaires

  1. background image avec linear gradient sur internet explorer
    Par yvan3000 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 10/12/2012, 17h09
  2. Réponses: 3
    Dernier message: 15/04/2009, 17h03
  3. incompatibilite de mon site avec autre chose qu'internet explorer
    Par COOL YODA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 22/11/2007, 17h18
  4. Réponses: 2
    Dernier message: 24/01/2007, 13h58
  5. pb avec movie flash sous internet explorer
    Par glebourg dans le forum Flash
    Réponses: 7
    Dernier message: 15/12/2006, 10h06

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