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] Objet requis


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 56
    Points
    56
    Par défaut [AJAX] Objet requis
    Bonjour je viens de me mettre à l'AJAX, et j'ai un problème de compatibilité entre IE et FireFox.
    Je vous explique, j'ai un formulaire qui se rempli automatiquement lorsque je rentre une date, et que celle ci existe déjà dans ma BDD. Jusqu'ici, je n'avais aucun problème, jusqu'à ce que je teste le site sous IE. Sous IE, les champs textes se remplissent, les images se mettent à jours, mais mes listes restent à leur états originales... De plus, j'ai un autre formulaire, qui se rempli automatiquement, lors d'un choix dans ma liste déroulante, sous FireFox, tout va bien mais sous IE il ne fait rien et en regardant l'erreur ça me dit : "Objet Requis".
    Je ne sais pas quoi faire. Pouvez vous m'aider?
    Voici mon code:
    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
     
    function ajax()
    {
        var xhr=null;
     
    	if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); // Firefox, Opera, Konqueror, Safari, ...
    	else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP'); // Internet Explorer
    	else alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...'); // Navigateur
    	//on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { alert_ajax(xhr);
    	 };
     
     
        //on appelle le fichier ajax
        xhr.open("GET", "ajaxDj.php?nom="+document.djs.djName.value, true);
        xhr.send(null);
    }
    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;
    } 
     
    function alert_ajax(xhr)
    {
        if (xhr.readyState == 4 && xhr.status == 200) 
        {	
    		//chaque boucle va chercher les données dans un noeud
    		//getElementsByTagName("")--> Représente le noeud dans lequel on vas chercher les données
    		reponse = clean(xhr.responseXML.documentElement);
        	var docXML= xhr.responseXML;
        	var id = docXML.getElementsByTagName("ID");
        	var nom = docXML.getElementsByTagName("NOM");
    		var texte = docXML.getElementsByTagName("TEXTE");
    		var url = docXML.getElementsByTagName("URL");
    		var photo = docXML.getElementsByTagName("PHOTO");
    		//noeud ID
    		for (i=0;i<id.length;i++)
    		{
    			if(id.item(0).firstChild.nodeValue  > 0){
    				document.djs.valider.value = "MODIFIER CE DJ";
    				document.djs.action = "index.php?url=ModifDj";
    			}
    			else{
    				document.djs.valider.value = "AJOUTER CE DJ";
    				document.djs.action = "index.php?url=VerifDj";
    				if(id.item(0).firstChild.nodeValue  =="0"){
    				document.djs.nom.value = "";
    				document.djs.description.value = "";
    				}
    			}
    		}
    		//noeud NOM
    		for (i=0;i<nom.length;i++)
    		{       //c'est ici qu'il y a une erreur sous IE
    			document.djs.nom.value = nom.item(0).firstChild.nodeValue;
    		}
    		//noeud TEXTE
    		for (i=0;i<texte.length;i++)
    		{
    			document.djs.description.value = texte.item(0).firstChild.nodeValue ;
    		}
    		//noeud URL
    		for (i=0;i<url.length;i++)
    		{
    			document.djs.url.value = url.item(0).firstChild.nodeValue ;
    		}
    		//noeud PHOTO
    		for (i=0;i<photo.length;i++)
    		{
    			document.djs.photoDj.src = photo.item(0).firstChild.nodeValue ;
    		}
     
    	}
    }
    Voici mon XML:
    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
     
    −
    	<DONNEE>
    <ID>35</ID>
    <NOM>David Guetta</NOM>
    <PHOTO>Upload/Photo DJ/David Guetta/david guetta.jpg</PHOTO>
    −
    	<TEXTE>
    Pionnier de la house hexagonale avec "Up & Way", David Guetta s'est imposé dans les années 90 comme un entrepreneur phare de la nuit parisienne invitant des légendes comme Little Louie Vega, David Morales, DJ Pierre ou Roger Sanchez à partager ses platines.
     
    Annoncé par "Just A Little More Love", cocktail d'électro et de funk house avec Chris Willis de Nashville au chant, le premier album de David Guetta paru chez Virgin en juin 2002 va s'écouler à 250 000 exemplaires. Succès porté par le deuxième single encore plus dévastateur : "Love Don't Let Me Go" évoquant le techno-disco de Moroder et la new-wave de Depeche Mode.
     
    Pour David, qui fit, comme Laurent Garnier, ses débuts dans les clubs gays des Halles au milieu des années 80, c'est le début d'une nouvelle carrière de DJ, mais désormais à l'échelle mondiale. Son CD "Fuck Me I'm Famous : Dj Mix Ibiza", du nom de la soirée qu'il organise sur l'île techno, et qui contient son remix du "Heroes" de David Bowie, est disque d'or aujourd'hui, score exceptionnel pour un CD de mix. Depuis quelques années maintenant, David est régulièrement invité à mixer en Europe, aux Etats-Unis, Australie, Japon, Singapour, Israël, tout en étant résident à The Cross à Londres, au Discoteca de Barcelone et au Mad à Lausanne.
    </TEXTE>
    <URL>http://www.davidguetta.com</URL>
    <VOTE>0</VOTE>
    </DONNEE>

  2. #2
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    J'ai trouvé une piste (bien que je vois pas comment faire), en fait j'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xhr.responseText);
    et sous FF je recupere bien mon XML rempli, mais sous IE mon XML est vide.
    Est ce que vous voyez pourquoi ca me fait ça?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    visiblement, IE n'aime pas les caractères accentués dans du xml ajax

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2005
    Messages : 81
    Points : 56
    Points
    56
    Par défaut
    En fait c juste que cette mer** d'IE ne recuperais pas la valeur de ma liste, parce que j'avais tapé (Ce qui est compris par FF,Opera...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="liste">
        <option>1</option>
        <option>2</option>
    </select>
    et qu'il fallait faire (IE ne comprend que ça):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="liste">
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    C'est vraiment de la M*#$\( IE

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

Discussions similaires

  1. Objet requis: 'expXpath', contourner l'erreur
    Par totoche dans le forum ASP
    Réponses: 3
    Dernier message: 09/11/2006, 14h35
  2. [POO] objet requis dans choix de bouton radio
    Par allowen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/11/2005, 13h46
  3. Objet requis qu'il me dit
    Par Grosmou dans le forum Access
    Réponses: 15
    Dernier message: 27/09/2005, 07h41
  4. Erreur Objet requis : 'this' --> Comprend pas!!
    Par Grozeil dans le forum ASP
    Réponses: 3
    Dernier message: 30/03/2005, 09h46
  5. Erreur "Objet requis"
    Par cindaille dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2004, 00h59

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