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] getElementsByTagName et Firefox


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 25
    Points
    25
    Par défaut [AJAX] getElementsByTagName et Firefox
    Bonjour,
    Voila, je me permets de poser un message après des heures à me taper la tête contre les murs !
    tout d'apres le script marche tres bien sous IE...mais sous firefox......

    Donc j'envoie via un script php, un fichier xml dont le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    header('Content-Type: text/xml'); 
    	echo "<?xml version=\"1.0\"?>\n";
    	echo "<register>\n";
    		for($i=0;$i<count($erreurs);$i++)
    		{
    		echo "<donnee>".$erreurs[$i]."</donnee>\n";
    		}
    	echo "</register>\n";
    Ensuite le code "AJAX" est :

    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
    function signin(pseudo,password1,password2,birthday,seebirthday,metier,seeprofession,pays,ville,email1,email2,seeemail,phone,seephone,web,seeweb,newsletter,code)
    {
    	var OAjax;
    	var Index;
    	var erreur;
    	if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
    	else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP'); 
    	OAjax.open('POST',"ctrregister.php",true);
    	OAjax.onreadystatechange = function()
    	{
    		if (OAjax.readyState == 4 && OAjax.status==200)
    		{
    			if (document.getElementById) 
    			{	
    				if (OAjax.responseText =='true') 
    				{	
    				document.location.href="confirmation.php"		
    				}else{
    					//alert(OAjax.responseText);
    					var docXML= OAjax.responseXML;
    					var items = docXML.getElementsByTagName("donnee")
    					//on fait juste une boucle sur chaque element donnee trouve
    					for (i=0;i<items.length;i++)
    						{   
    							document.getElementById("msg"+i).innerHTML=' ';
     
    							try{ 
    							document.getElementById("msg"+i).innerHTML=items.item(i).firstChild.data;
    							}catch(e){
    								var tmp=e;
    							}
     
     
    						}
    				}
    			}
    		}
    	}
    	OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    	OAjax.send('pseudo='+pseudo+'&password1='+password1+'&password2='+password2+'&birthday='+birthday+'&seebirthday='+seebirthday+'&metier='+metier+'&seeprofession='+seeprofession+'&pays='+pays+'&ville='+ville+'&email1='+email1+'&email2='+email2+'&seeemail='+seeemail+'&phone='+phone+'&seephone='+seephone+'&web='+web+'&seeweb='+seeweb+'&newsletter='+newsletter+'&code='+code);
    }
    A l'exécution sous firefox, j'ai l'erreur :

    docXML has no properties
    [Break on this error] var items = docXML.getElementsByTagName("donnee")
    S'il vous plait, je tourne en rond

    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Ca a l'air d'être plutot le docXML qui foire. Et si tu fais alert(docXML) ?
    Cartes Pokémon, Yugioh, Magic ?
    Communauté d'échange

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 25
    Points
    25
    Par défaut alert(OAjax.responseXML);
    Excusez moi pour l'indentation du code.

    Lorsque je fais :
    alert(OAjax.responseXML);

    il me renvoie dans un message box : Null


    Pour tester, j'ai essayer à la place :
    alert(OAjax.responseText);

    Et là, il me renvoie l'integralité du code de la page appellante !!!

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Oui c'est ce qu'il me semblait, tu avais mal interprété le message d'erreur.
    Le problème est que l'objet est null, donc forcément il a aucune méthode rien à voir avec le getelementbytagname.
    Apparement firefox ne détecte pas que ton fichier est un xml et le traite comme un fichier quelconque, fais quelques recherches pour voir si y'a rien à préciser en plus.
    Cartes Pokémon, Yugioh, Magic ?
    Communauté d'échange

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 25
    Points
    25
    Par défaut peut etre entete xml !!
    En effet, je suis d'accord, il semble ne pas trouver le XML !!!

    j'en suis à :

    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    header ("Content-Type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n";

    et il me trouve toujours pas mon fichier......je sais vraiment pas quoi faire....si quelqu'un a une réponse

    Merci beaucoup

  6. #6
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Salut,
    Je dis peut-être une bêtise, mais je crois que FF prend en compte les noeuds text et que cela fout le souc dans l'interprétation de la réponse.

    Pour cela, dans l'excellent tuto que j'ai lu, Siddh propose un node cleaner, qui permet de virer tous ces noeuds qui gênent dans FF.
    Code javascript : 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
    function go(c){
    	if(!c.data.replace(/\s/g,''))
    		c.parentNode.removeChild(c);
    }
     
    function clean(d){
    	var bal=d.getElementsByTagName('*');
     
    	for(i=0;i<bal.length;i++){
    		a=bal[i].previousSibling;
    		if(a && a.nodeType==3)
    			go(a);
    		b=bal[i].nextSibling;
    		if(b && b.nodeType==3)
    			go(b);
    	}
    	return d;
    }
    Je l'utilise à chaque fois et j'avoue ne plus avoir eu de problèmes depuis...

    J'espère que ça t'aidera...
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

  7. #7
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Pardon, mais je pense encore à une autre solution...

    As-tu essayé de voir directement ce que te donnerait le résultat de ta requête en accédant directement à la page "ctrregister.php" avec tous tes paramètres en GET dans l'URL (pourvu que tu n'en aies pas trop)?

    Tu verras tout de suite ce qui se passe, si tu as une erreur de doc mal formé ou s'il n'y a pas de document XML du tout...
    GAMIN !!!!
    _______________________________________________
    PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX

Discussions similaires

  1. [Ajax] Problème XMLHttpRequest Firefox
    Par wwave dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/09/2006, 16h42
  2. [Ajax] problème IE // FireFox
    Par samtheh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2006, 13h20
  3. [AJAX] Affichage avec Firefox
    Par sarapis dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/05/2006, 17h00
  4. [AJAX] Ajax IE vs Firefox ?
    Par lezard dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/04/2006, 15h41
  5. [AJAX] AJAX en local (firefox /wamp)
    Par Space Cowboy dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/03/2006, 13h05

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