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] Fichier ASP appelé par AJAX


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut [AJAX] Fichier ASP appelé par AJAX
    Bonjour à tous,

    je ne sais pas si vous avez compris le titre, mais j'ai plusieurs problémes concernant les fonctions javascript appelé par AJAX. Aprés recherches, j'ai lu qu'une fonction JS ne puvait pas être executé si elle est dans un fichier ASP appelé en ASP.
    J'ai donc utilisé cette méthode :
    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
     
    	if(param=="fleche"){
    		var responseText = "afficheTout('cacheForm');";
    	}else if(param!="aff"){
    		var responseText = "rempliToutSeul('deuxieme');";
    	}
    	if(param=="aff"){
    		var responseText = "rempliToutSeul('cacheForm');";
    	}
    	//alert(responseText);
    	xmlhttp.open('POST',url,true);
    	xmlhttp.onreadystatechange=function() {
        	if (xmlhttp.readyState==4) {
            	if(document.getElementById){
              		document.getElementById(id).innerHTML = xmlhttp.responseText;
    				if(id=="champsCache"){
    				var BaliseScript=document.createElement('script');
    				BaliseScript.type='text/javascript' 
    				BaliseScript.appendChild(document.createTextNode(responseText))
    				document.body.appendChild(BaliseScript)
    				}			
            	}
        	}
    	}
    Le probléme c'est que cela ne marche pas du tout sous IE (la fonction JS ne n'execute pas) mais sous FF ca marche.

    Donc je continu ma prog sous FF en attendant de trouver la solution sous IE mais j'ai un autre soucis sous FF.

    Je m'explique, je veut mettre a jour un formulaire a partir d'un autre, ca marche pour certains formulaire mais pas pour d'autre.
    Voici le code:

    => httprequest (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
     
    // function hhtprequest
    function httprequest(id,url,param)
    {
    	var texte= '';
    	try{	
    		document.getElementById(id).innerHTML = ""; 
    	}catch(e){
    		alert(e);
    	}
    	//alert(id);
    	//}
     
    	var xmlhttp=false;
    	try{
        	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    	}catch(e){
        	try{
            	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        	}catch(E){
            	xmlhttp = false;
        	}
    	}
    	if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
        	try{
            	xmlhttp = new XMLHttpRequest();
        	} catch (e){
            	xmlhttp = false;
        	}
    	}
    	if(!xmlhttp && window.createRequest){
        	try{
            	xmlhttp = window.createRequest();
        	} catch(E){
            	xmlhttp = false;
        	}
    	}
    	if(param=="fleche"){
    		var responseText = "afficheTout('cacheForm');";
    	}else if(param!="aff"){
    		var responseText = "rempliToutSeul('deuxieme');";
    	}
    	if(param=="aff"){
    		var responseText = "rempliToutSeul('cacheForm');";
    	}
    	//alert(responseText);
    	xmlhttp.open('POST',url,true);
    	xmlhttp.onreadystatechange=function() {
        	if (xmlhttp.readyState==4) {
            	if(document.getElementById){
              		document.getElementById(id).innerHTML = xmlhttp.responseText;
    				if(id=="champsCache"){
    				var BaliseScript=document.createElement('script');
    				BaliseScript.type='text/javascript' 
    				BaliseScript.appendChild(document.createTextNode(responseText))
    				document.body.appendChild(BaliseScript)
    				}			
            	}
        	}
    	}
    	xmlhttp.setRequestHeader('Content_type','application/x-www-form-urlencoded');
    	var data = 'texte='+escape(texte);
    	xmlhttp.send(data);
    }
    Ca marche mais je le mais quand même

    => Code de la div qui doit mettre à jour l'autre div, celui-ci aussi marche bien(se met bien a jour), je la met juste pour les id des input, form, etc...
    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
     
    <form action="#" method="post" id="deuxieme" style="display:none;">
    		<input type="text" id="company" value="<%=company%>" />
    		<input type="text" id="address1" value="<%=add1%>" />
    		<input type="text" id="address2" value="<%=add2%>" />
    		<input type="text" id="address3" value="<%=add3%>" />
    		<input type="text" id="address4" value="<%=add4%>" />
    		<input type="text" id="county" value="<%=county%>" />
    		<input type="text" id="postcode" value="<%=post%>" />
    		<input type="text" id="telephone" value="<%=tel%>" />
    		<select id="contact">
    	<%
    	if rz2.eof then
    		Response.write "<option value=''>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
    		Response.write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
    		Response.write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>"
    	end if
    	while not rz2.EOF 	
    		Response.write "<option value='"&rz2.fields("CONTACT")&"'>"&rz2.fields("CONTACT")&"</option>"
    		rz2.movenext
    	wend
    	%>
    		</select>
    	</form>
    => ICI je met le code de la fonction javascript permettant de remplir le form (voir plus bas) avec les valeurs du formulaire ci-dessus)
    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
     
    // this function allows to empty a list with another
    function rempliToutSeul(form){
    	//alert(form);
    	var un=document.getElementById('autreForm');
    	var deux=document.getElementById(form);
    	un.ville.value=deux.address4.value;
    	un.compagnie.value=deux.company.value;
    	un.codePostal.value=deux.postcode.value;
    	un.telephone.value=deux.telephone.value;
     
    	un.nomcontact.length=0;
    	for(i=0;i<un.nomcontact.length;i++){
    		un.nomcontact.options[i].value=null;
    	}
    		// 2 On la remplie avec les valeurs de la liste des contacts cachée
    	for(i=0;i<deux.contact.length;i++){
    		un.nomcontact.options[i]= new Option(deux.contact.options[i].text,deux.contact.options[i].value);	
    	}	
    	un.Pays.value=deux.county.value;
    	un.adresse.value=deux.address1.value+" / "+deux.address2.value+" / "+deux.address3.value;
    }

    Et enfin voici le code du formulaire que je met a jour
    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
     
    <%
    Response.charset="iso-8859-1"
    Response.Write request.QueryString("valeur")
    %>
    	<form method="post" action="#" id="autreform" >
    		<table>
    			<tr>
    			    <td>Numero <%=request.querystring("type")%><br /><input type="text" id="numclient" name="numclient" value=""  
    				<% if request.querystring("type")="client" then %>			
    				onkeyup="javascript:httprequest('champsCache','ASP/rempliDest.asp?type=<%=request.QueryString("type")%>&valeur='+this.value);"
    				<% end if %>
    				 /></td>
    			    <td colspan="2">Nom du contact <br />
    					<select id="nomcontact">
    						<option value="">
    						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    						&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    						</option>	
    					</select>
    				</td>
    			</tr>
    			<tr>
    				<td>Compagnie</td>
    				<td colspan="2"><input type="text" id="compagnie" value="" size="45%"/></td>
    			</tr>
    			<tr>
    				<td>Adresse</td>
    				<td colspan="2">
    				<textarea id="adresse" rows="2" cols="34"></textarea>
    				<!-- <input type="text" id="adresse" value="" size="45%" />-->
    				</td>
    			</tr> 
    			<tr>
    				<td>Pays <br /><input type="text" id="Pays" value=""  /></td>
    				<td>Ville <br /><input type="text" id="ville" value="" /></td>
    				<td>Code Postal <br /><input type="text" id="codePostal" value="" /></td>
    			</tr> 
    			<tr>
    				<td>Telephone</td>
    				<td><input type="text" id="telephone" value="" /></td>
    			</tr>
    		</table>
    	</form>
    Ce code marche correctement sur un formulaire statique (tout le temps présent sur la page), mais pas dans mon cas, en effet, le formulaire est affiché via AJAX. Je rentre bien dans la fonction JS (un alert me le confirme), mais le formulaire ne se met pas à jour, et sous FIrebug, je n'ai aucune erreur.

    JE SUIS PERDU, je pige rien

    Merci d'avance

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour
    Citation Envoyé par dragonfly
    Le probléme c'est que cela ne marche pas du tout sous IE (la fonction JS ne n'execute pas) mais sous FF ca marche.
    Au lieu de générer un balise script pourquoi ne fais-tu pas juste un ??


  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Sinon (pb 2), tu es sûr de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    un.nomcontact.length=0;
    "nomcontact" étant l'ID d'un select, y a visiblement un pb de syntaxe, là

    A+

  4. #4
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Salut,

    en ce qui concerne le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    eval(responseText);
    Je le met à la place de tout le reste ?
    Pourtant ca marche vu que quand je fais un alert dans la fonction il me l'execute bien mais que l'alert

    Pb2, cela marche trés bien, je l'utilise pour mettre à jour un formulaire statique (toujours présent sur la page et cela marche trés bien)

    Mais la le formulaire et appelé en même temps que l'execution de la fonction JS, donc je me demandais si cela ne viens pas du fait que la fonction JS est éxecutée avant que le code ASP ne s'execute donc forcement rien ne peut être mis à jour.

    Comment peut-on faire pour executer la fonction JS a la fin de l'execution du code ASP?

  5. #5
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Re, j'ai essayé avec eval(responseText), mais le probléme c'est que cette fonction s'execute avant l'appel du fichier ASP, donc du coup j'ai des erreurs comme quoi le formulaire n'existe pas => pas encore créé


    Edit : En fait en utilisant eval, l'envoi HTTPRequest ne s'effectue pas, donc je l'ai enlevé

  6. #6
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    RE,

    en fait ca marche, mais comme firefox ne me disais pas ou se trouvait les erreurs, j'ai finalement, c'est juste que dans la fonction j'ai mis un "F" au leiu d'un "f" pour le nom du formulaire (mais pas d'erreur selon les browsers)

    Donc le probléme de FF est resolu, tout marche nickel sous FF, mais sous IE, la fonction javascript n'est pas appelé => les formulaires ne se remplissent pas automatiquement.

    Quelqu'un a une solution ?

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Tu mélanges des syntaxes qui n'ont pas lieu de l'être.
    getElementById() permet l'accès direct aux éléments.
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    un.ville.value=deux.address4.value;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('ville').value=document.getElementById('address4').value;
    ainsi que dans toutes les lignes similaires (en fait, partout où tu commences par "un." ou "deux.") ....

    EDIT : tu n'as pas besoin de tes "var un = ..." et "var deux = ..."

    A+

  8. #8
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Re,

    je ne peut pas faire ca car j'ai plusieurs formulaires, et certains input on les même nom dans des formulaires différents, c'est pour cela que j'utilise des "un" "deux", pour pouvoir prendre la bonne valeur dans le bon formulaire.

    Cette syntaxe ne me pose pas de problémes. Sous FF maintenant tout marche nickel mais sous IE, ceci ne fonctionne pas:
    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
     
    if(param=="fleche"){
    		var responseText = "afficheTout('cacheForm');";
    	}else if(param!="aff"){
    		var responseText = "rempliToutSeul('deuxieme');";
    	}
    	if(param=="aff"){
    		var responseText = "rempliToutSeul('cacheForm');";
    	}
    	//alert(responseText);
    	xmlhttp.open('POST',url,true);
    	xmlhttp.onreadystatechange=function() {
        	if (xmlhttp.readyState==4) {
            	if(document.getElementById){
              		document.getElementById(id).innerHTML = xmlhttp.responseText;
    				if(id=="champsCache"){
    				var BaliseScript=document.createElement('script');
    				BaliseScript.type='text/javascript' 
    				BaliseScript.appendChild(document.createTextNode(responseText))
    				document.body.appendChild(BaliseScript)
    				}			
            	}
        	}
    	}
    Sous IE
    Aucune fonction javascript n'est appelé donc je n'accéde même pas au un.ville...
    J'ai essayé comme tu me l'as conseillé avec un eval mais que je le mette avant ou aprés l'envoi des données, la page ASP n'est pas appelé donc la il me met une erreur.

    J'ai vu sur le net que pour "createElement..." sous IE il fallait bidouiller pour que cela marche, mais je n'ai pas trouvé comment résoudre mon probléme...

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par dragonfly
    J'ai vu sur le net que pour "createElement..." sous IE il fallait bidouiller pour que cela marche, mais je n'ai pas trouvé comment résoudre mon probléme...
    Ah bon ?

    A+

  10. #10
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Re,

    j'ai regardé sur le lien que tu m'as envoyé, j'ai donc remplacé ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var BaliseScript=document.createElement('script');
    BaliseScript.type='text/javascript' 
    BaliseScript.appendChild(document.createTextNode(responseText))
    par ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var BaliseScript=document.createElement("<script  language='JavaScript'>"+responseText+"</script>");
    Sous FF ca marche toujours bien, mais sous IE maintenant, plus aucun appel AJAX ne fonctionne...

    A moins que je ne m'y soit mal pris ou que l'erreur ne se trouve pas ou je pense

  11. #11
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Un piti up, si jamais quelqu'un à une idée de ou peut venir mon probléme.

    MERCI

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var BaliseScript=document.createElement("<script  language='JavaScript'>"+xmlhttp.responseText+"</script>");


    A+

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    ... du coup, ré-essaye ta version précédente, si tu avais oublié la même chose ...

    A+

  14. #14
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Re, Merci pour ta réponse mais

    Ca ne marche plus du tout, je m'explique :

    j'ai fait un copié collé du code que tu m'a donné et FF me balance cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String contains an invalid character"  code: "5
    http://*******/script.js
    Line 59
    Et la ligne 59, c'est ce que j'ai copié, je ne vois pas ou il'y'a une erreur dans cette ligne.
    Avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var BaliseScript=document.createElement("<script  language='JavaScript'>"+responseText+"</script>");
    Ca me met la même erreur, alors que c'est la même ligne

  15. #15
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Je ne peux que te conseiller une relecture attentive du #12

  16. #16
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    J'ai fais un copié collé du #12 et il me met l'erreur que j'ai enoncé dans le #14, mais je ne vois pas d'ou cela peut venir ...

  17. #17
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    En fait, il ne me met une erreur que sous FF, donc j'ai separé le cas IE et le reste, ce qui me donne :
    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
     
    	xmlhttp.open('POST',url,true);
    	xmlhttp.setRequestHeader('Content_type','application/x-www-form-urlencoded');
    	var data = 'texte='+escape(texte);
    	xmlhttp.onreadystatechange=function() {
        	if (xmlhttp.readyState==4) {
            	if(document.getElementById){
    				if (document.selection){ // Avec ca on teste si c'ezst IE
    					var BaliseScript=document.createElement("<script language='JavaScript'>"+xmlhttp.responseText+"</script>");
    				}else{
    					var BaliseScript=document.createElement('script');
    					BaliseScript.type='text/javascript' ;
    					document.getElementById(id).innerHTML = xmlhttp.responseText;
    				}
    				BaliseScript.appendChild(document.createTextNode(responseText));
    				document.body.appendChild(BaliseScript);				
    	       	}
        	}
    	}
    	xmlhttp.send(data);
    }
    Mais du coup sous IE, plus aucun appel AJAX n'est executé.
    J'ai mis des alert aprés le document.createElement et ils s'affichent, donc la je pige pas trop la subtilité...

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.selection){ // Avec ca on teste si c'ezst IE
    Ca, faudrait te faire confirmer
    Pas sûr que ton test soit bon.
    Cf. la FAQ pour les tests de navigateurs ...

    A+

  19. #19
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Re,

    Moi aussi j'ai un peu douté, donc j'ai mis un alert dans la condition et, effetivement sous IE l'alert s'affiche (mais le code "createElement..." ne fait rien du tout) mais pas sous FF => je suppose que le test marche.

    Je desespere, mon site est nickel sous FF et je n'ai vraiment pas envie de tout me retaper pour IE a cause d'une simple ligne de code qui ne s'execute pas

  20. #20
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par dragonfly
    (mais le code "createElement..." ne fait rien du tout)
    C'est à dire ?
    Tu es sûr que la balise n'est pas créée ?
    C'est peut-être le script lié lui-même qui pose pb à IE ...

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2011, 11h51
  2. Excécuter une fonction JS dans un fichier PHP "appelé" en Ajax
    Par Voyageur Du Net dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/05/2011, 17h21
  3. du javascript dans un formulaire appelé par ajax
    Par kaking dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/07/2009, 11h49
  4. [AJAX] AJAX appelé par AJAX
    Par hanphi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/04/2008, 10h10
  5. [AJAX] Drag n drop d'un element appelé par AJAX
    Par Death83 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/04/2006, 17h44

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