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

AJAX Discussion :

[AJAX] Erreur sous IE


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut [AJAX] Erreur sous IE
    Bonjour,

    Dans le cadre d'un formulaire de contact, qui fonctionne sous firefox, j'ai un souci sous IE que je n'arrive à résoudre.
    Peut être saurez vous me venir en aide. Voici le code, sachant que l'erreur selon le déboggeur est ligne 24:

    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
     
    function ajax()
    {
    	var xhr = null; 
    	if(window.XMLHttpRequest)
    	   xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject){
    	   try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    	}
    	else {
    	   alert("Votre navigateur ne supporte pas certains objets Javascript..."); 
    	   xhr = false; 
    	} 
    	return xhr;
    }
     
    function getFields(form)
    {
       var url='';
     
       formulaire = document.getElementById(form);
     
       for (i=0; i<formulaire.elements.length; i++)
       {
           if(((formulaire.elements[i].type=='radio' || formulaire.elements[i].type=='checkbox') && formulaire.elements[i].checked==true) || (formulaire.elements[i].type!='radio' && formulaire.elements[i].type!='checkbox'))
           {
       			if(formulaire.elements[i].type=='select-multiple' || formulaire.elements[i].type=='select' ) 
    		   {
        			for(j = formulaire.elements[i].length-1; j >= 0; j-=1)
           			{
              			if(formulaire.elements[i].options[j].selected)
                 		{
                 			if(url)
                 			{
                 				url+='&';
                 			}
               				url+=formulaire.elements[i].name+'='+formulaire.elements[i].options[j].value;
                 		}
         			}
       			}
       			if(url)
       			{
       				url+='&';
       			}
      			 if(formulaire.elements[i].type!='select-multiple')
      			 {
      			 	url+=formulaire.elements[i].name+'='+formulaire.elements[i].value;
      			 }
     		}
    	}
     
    	return url;
    }
    Merci par avance pour votre aide

  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,
    il faudrait également le code HTML du formulaire ...

    Sinon, c'est laquelle la ligne 24 ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Voici le code html

    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
     
    <form id="formpage" method="post" action="#">
    		<input type="hidden" name="page" id="page" value="<?=$template	->	pageTitle;?>" />
    		<input type="hidden" name="pageid" id="pageid" value="<?=$template	->	pageID;?>" />
    		<table width="100%" class="borderbottom" cellspacing="0" cellpadding="0">
    			<tr>
    				<th colspan="1">Nous adresser votre message</th>
    			</tr>
    			<tr>
    				<td colspan="1">&nbsp;</td>
    			</tr>
    			<tr valign="top">
    				<td>
    					<table width="100%" cellspacing="3" cellpadding="5">
    						<tr>
    							<td><label for="nom">Nom *:</label></td>
    							<td><input type="text" name="nom" id="nom" /></td>
    						</tr>
    						<tr>
    							<td><label for="email">E-Mail *:</label></td>
    							<td><input type="text" name="email" id="email" /></td>
    						</tr>
    						<tr>
    							<td><label for="tel">T&eacute;l&eacute;phone *:</label></td>
    							<td><input type="text" name="tel" id="tel" /></td>
    						</tr>
    						<tr>
    							<td colspan="2"><label for="msg">Votre message *:</label></td>
    						</tr>
    					</table>
    				</td>
    			</tr>
    			<tr>
    				<td colspan="1" ><textarea name="msg" id="msg" rows="6" cols="40"></textarea></td>
    			</tr>
    			<tr>
    				<td colspan="1" >&nbsp;</td>
    			</tr>
    		</table>
    		<p class="right"><i>* champs obligatoires</i></p>
    		<p class="center" id="formloading"></p>
    		<p class="center"><input type="button" id="submit" name="submit" value="Envoyer" onclick="contact()" /></p>
    	</form>
    quant à la ligne 24, il s'agit de:
    formulaire = document.getElementById(form);


    Voili voilou

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    J'ai copié le message d'erreur, ça pourra sûrement aider:

    Webpage error details
    Message: Object doesn't support this property or method
    Line: 24
    Char: 4
    Code: 0
    URI: http://www.***.fr/_JS/ajax.js

  5. #5
    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
    Comme par la suite tu utilises la syntaxe de la collection "forms", , il faut commencer dès le début => essaye en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formulaire = document.getElementById(form);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    formulaire = document.forms[form];
    Par contre, il faut aussi que tu définisses un name pour ton form. C'est ce name que tu dois utiliser dans la fonction (donc lui passer en paramètre).
    Si c'est bien ça, l'erreur était en fait à la ligne suivante car cette syntaxe isolée (avec l'id) est correcte.

    Sinon, essaye de ne pas utiliser comme identifiant des mot réservés du langage (ici form)

    EDIT : voir l'appel de la fonction aurait aidé aussi

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Merci pour tes pistes.
    J'ai essayé mais tjrs le même souci. Je continue mes recherches

  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
    Citation Envoyé par E.Bzz Voir le message
    EDIT : voir l'appel de la fonction aurait aidé aussi
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Je n'avais pas fait attention à la fin de ton message.

    Voici le fichier JS pour l'appel de finction

    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
     
    var URL 	= 'http://***'													;
    var LOADER 	= '<img src="'+URL+'/_IMG/loading.gif" width="16" height="16" alt="Loading..." />'	;
    var VERIF	=	'V\351rifications en cours...'													;
     
    function popup(message)
    {
    	document.getElementById('message').innerHTML=message		;
    	document.getElementById('popup').style.display='block'		;
    	document.getElementById('inpopup').style.display='block'	;
    }
     
    function closepopup()
    {
    	document.getElementById('popup').style.display='none'	;
    	document.getElementById('inpopup').style.display='none'	;
    }
     
    function contact(page)
    {
    	document.getElementById('submit').value=VERIF		;
    	document.getElementById('submit').disabled=true								;
    	document.getElementById('formloading').innerHTML=LOADER						;
     
    	var xhr 		= 	ajax()													;
    	xhr.onreadystatechange = function()
    	{
    		if (xhr.readyState == 4 && xhr.status == 200)
    		{
    			result	=	xhr.responseText.split('|')	;
    			if (result[0] == '1')
    			{
    				document.getElementById('formpage').style.display='none'	;
    				popup(''+result[1]+'')										;	
    			}
    			else
    			{
    				msgerror	=	''					;
    				nberrors	=	result.length		;
     
    				for (xi=1; xi<nberrors; xi++)
    				{
    					xerror	=	result[xi].split('#')								;
    					msgerror	=	msgerror+'<p>'+xerror[1]+'</p>'					;
    					$('#'+xerror[0]).effect("highlight", { color: '#e3b5c5'}, 5000)	;
    				}
     
    				popup(''+msgerror+'')										;
    				document.getElementById('submit').value="Envoyer"			;
    				document.getElementById('submit').disabled=false			;
    				document.getElementById('formloading').innerHTML=''			;
    			}
    		}
    	}
     
    	mypost	=	function()
    	{
    		xhr.open('POST', URL+'/_PHP/post-contact.php', true)						;
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')	;
    		xhr.send(getFields('formpage'))												;
    	}
     
    	setTimeout('mypost()', 1000)	;
    }

  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
    On peut voir la version modifiée (HTML + JS) ?

    Sinon, pour voir s'il reconnait ton form, ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function getFields(form)
    {
       var url='';
       
       formulaire = document.forms[form];
       alert(formulaire.elements.length);
    S'il te sort le bon nombre d'éléments, c'est que l'erreur doit venir d'ailleurs ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Il ne me sort carrément rien, toujours la même erreur. Les joies du débutant s'abattent sur moi

    Je prépare l'html + js ...

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Salut.

    form est un nom de paramètre mal choisi car c'est aussi un nom de propriété d'éléments de formulaires en JavaScript.
    Commence peut-être par changer ça !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  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
    Citation Envoyé par E.Bzz Voir le message
    Sinon, essaye de ne pas utiliser comme identifiant des mot réservés du langage (ici form)
    +2 donc, si ce n'est toujours pas modifié ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Alors la pause déjeuner m'a remonté et la solution est trouvée

    Il me fallait préciser la déclaration de variable pour le formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function getFields(form)
    {
       var url='';
       var formulaire = document.forms[form];
    Et effectivement, je modifie tout de suite le nom pour éviter de prendre le terme 'form' réservé.

    Merci pour votre rapidité,
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sous PHP MyAdmin (PMA database?)
    Par Matlight dans le forum Installation
    Réponses: 5
    Dernier message: 28/10/2010, 19h38
  2. [AJAX] Erreur dans la fonction de déclaration xhr sous IE6 et 7
    Par aigleblanc dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 23/10/2007, 15h47
  3. message d'erreur sous l'utilitaire IBconsole
    Par vbcasimir dans le forum Outils
    Réponses: 6
    Dernier message: 05/01/2005, 12h07
  4. découvrir les erreurs sous Mozilla
    Par rabobsky dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/12/2004, 20h51
  5. Personnaliser un rapport d'erreur sous Windows XP
    Par Neilos dans le forum Windows
    Réponses: 5
    Dernier message: 21/11/2003, 18h13

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