Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1722 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Ajax] Pb sous firefox de xhr_objet.open et responseText

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Ajax] Pb sous firefox de xhr_objet.open et responseText

n°1620961
hyptnos
GT : Gui iom
Posté le 09-10-2007 à 12:05:34  profilanswer
 

Bonjour a tous.
Gros souci et après quelque heure à décortiqué le problème et sans resultat j'en viens à demander l'aide d'expert en Ajax car je m'arrache les cheveux que je n'ai deja plus.

 

Alors j'ai un formulaire avec différent champs, lors du onClick sur le bouton du form j'ai mon action ajax qui se fait (Insert BDD)
Tout fonctionne bien sous IE, mais sous firefox non.
J'ai décortiqué le problème en ne passant seulement que 2 paramètres dans ma fonction. et j'ai fait des Alert pour vérifier les différente etapes.
Les variables passe bien et s'affiche
Le xhr_objet.readyState change bien d'etat pour passé à 4 (alert également)
mais lorsque je fais un Alert sur xhr.responseText je n'ai plus rien (fenetre vide)

 

voici le code de la partie Ajax du formulaire

 
Code :
  1. function connection(){
  2.   //-------------ouverture connection--------------------
  3.       if(window.XMLHttpRequest) // Firefox
  4.          xhr_objet = new XMLHttpRequest();
  5.       else if(window.ActiveXObject) // Internet Explorer
  6.          xhr_objet = new ActiveXObject("Microsoft.XMLHTTP" );
  7.       else { // XMLHttpRequest non supporté par le navigateur
  8.          alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  9.          return;
  10.   }
  11.  }
  12.  function testNew(title,auteur)
  13.  {       alert (title+'   '+auteur);
  14.   connection();
  15.   xhr_objet.open("GET", "rqt1.php?title=" + title +"&auteur=" +  auteur, true);
  16.   xhr_objet.setRequestHeader("Content-Type", "text/html; charset=UTF-8" );
  17.   xhr_objet.onreadystatechange = function() {
  18.    if (xhr_objet.readyState == 4)
  19.    {     
  20.     alert(xhr_objet.responseText);
  21.     /*if(xhr.responseText == 1 )
  22.      alert("Ajout effectué" )
  23.     else if(xhr.responseText == 0 )
  24.      alert("erreur lors de l\'ajout" )*/
  25.    }
  26.          }
  27.   xhr_objet.send(null);
  28.  }
 

et le fichier rqt1.php

 
Code :
  1. <?php
  2. //require_once("conf_bdd.php" );
  3. $sql_serveur="localhost";
  4. $sql_user="root";
  5. $sql_passwd="*********";
  6. $sql_bdd="masseffect";
  7. // CONNEXION A LA BDD
  8. $dbprotect = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR);
  9.   mysql_select_db($sql_bdd,$dbprotect) or die("pas de BDD" );
  10. $title  = $_GET['title'];
  11. $auteur = $_GET['auteur'];
  12.   $requete = mysql_query("INSERT INTO tb_news (author_news, title_news) VALUES ('$auteur','$title')" );
  13. echo 'insertion';
  14. ?>
 

donc sous IE j'ai bien mon insert qui se fait en BDD et j'ai un responseText qui affiche (insertion) mais firefox rien du tout, pas d'insertion bdd, et seulement une alert mais vide

 

Une idée please ?


Message édité par hyptnos le 17-02-2012 à 08:39:17
mood
Publicité
Posté le 09-10-2007 à 12:05:34  profilanswer
 

n°1620990
fred777888​999
Posté le 09-10-2007 à 13:16:31  profilanswer
 

Heu, une idee toute pourrie mais... Tu as mis une clef unique sur l'auteur et tu essaie de mettre le meme sous ff que sous ie et la requete plante en duplicate key. Essaie deja de traper/tracer les erreurs sql (au minimum, un echo de ta requete ne mange pas de pain).
++
Fred

n°1621005
hyptnos
GT : Gui iom
Posté le 09-10-2007 à 13:48:35  profilanswer
 

fred777888999 a écrit :

Heu, une idee toute pourrie mais... Tu as mis une clef unique sur l'auteur et tu essaie de mettre le meme sous ff que sous ie et la requete plante en duplicate key. Essaie deja de traper/tracer les erreurs sql (au minimum, un echo de ta requete ne mange pas de pain).
++
Fred


 
MErci de ton attention
cela dit quand j'ai dit que j'ai décortiqué le probleme c'est que j'ai juste enlever mon insert et tout trace de bdd dans mon code (pas dans celui que j'ai copier ici ) mais pour tester j'ai juste mis un echo 'insertion' dans mon fichier php rqt1.php.
Donc via ajax et le xhr.responseText il devrait me mettra l'alert insertion.
Et bien non sous Firefox rien
 
j'ai vraiment isolé le proibleme cela ne vient pas du xhr.open("GET", ....... et le lien est bon (copie / colle dans le navigateur et c'est good)
 
Donc vraiment la je sèche et le prof aussi (je suis en formation de developpement a L'Afpa)

n°1621009
dzing35
Posté le 09-10-2007 à 13:56:19  profilanswer
 

Je ne vois pas trop ce qui peux poser problème non plus...
J'ai une fonction similaire pour mon site et cela fonctionne. Je fais du post à la place du get mais je ne pense pas que cela soit le problème...
As-tu essayé de recopié le code de "connexion" dans "testNew" ?


---------------
Fred => http://www.meance.free.fr
n°1621011
fred777888​999
Posté le 09-10-2007 à 13:57:39  profilanswer
 

Ca devient interessant ton truc ;)
Perso, en plus du 'readystate', je teste aussi l'etat de retour :

Code :
  1. if (xhr_objet.readyState == 4)
  2. {
  3.     if ( xhr_objet.status == 200 )
  4.     {


Ca change qq chose ?
 
++
 
Fred

n°1621012
hyptnos
GT : Gui iom
Posté le 09-10-2007 à 14:00:35  profilanswer
 

Deja essayé en effet mais non malheureusement cela ne change absolument rien
 
et serieusement, j'y capte rien, pour une fois que c'est firefox qui fout la merde.
j'ai vider mon cache, fichier temporaire, les session, les cookies, etc.. idem. J'ai tester a partir de d'autre machine idem.
Mais non firefox partout ne veux rien savoir, IE partout niquel

n°1621098
fred777888​999
Posté le 09-10-2007 à 15:13:02  profilanswer
 

Ceci dit, je n'ai jamais rien renvoyé d'autre a un composant Ajax que du XML (jamais un texte sans rien, ca me semble d'ailleurs un peu 'hors normes' quand j'y reflechis). Si tu colle un entete XML avec un noeud text sous le modele suivant (a la place de l'echo, gaffe aux " en php) :

Code :
  1. <?xml version="1.0" encoding="utf-8" ?>
  2.   <string xmlns="http://tempuri.org/">insertion</string>


ca se passe mieux ou pas ?

Message cité 1 fois
Message édité par fred777888999 le 09-10-2007 à 15:13:55
n°1621963
hyptnos
GT : Gui iom
Posté le 11-10-2007 à 08:42:23  profilanswer
 

fred777888999 a écrit :

Ceci dit, je n'ai jamais rien renvoyé d'autre a un composant Ajax que du XML (jamais un texte sans rien, ca me semble d'ailleurs un peu 'hors normes' quand j'y reflechis). Si tu colle un entete XML avec un noeud text sous le modele suivant (a la place de l'echo, gaffe aux " en php) :

Code :
  1. <?xml version="1.0" encoding="utf-8" ?>
  2.   <string xmlns="http://tempuri.org/">insertion</string>


ca se passe mieux ou pas ?


 
Et bien non idem :S
Je comprend pas bien pourquoi firefox gène :(

n°1622091
Soileh
Lurkeur professionnel
Posté le 11-10-2007 à 11:07:17  profilanswer
 

Tu n'aurais pas une erreur Javascript dans ta console d'erreurs par hasard ? :??:


Message édité par Soileh le 11-10-2007 à 11:48:17
n°1622120
hyptnos
GT : Gui iom
Posté le 11-10-2007 à 11:17:06  profilanswer
 

Non plus :S
console d'erreur vierge de chez vierge sous firefox
et pas d'erreur sous IE (et sous ie sa marche)
 
Hummm bizarre n'est ce pas

mood
Publicité
Posté le 11-10-2007 à 11:17:06  profilanswer
 

n°1622138
dzing35
Posté le 11-10-2007 à 11:23:02  profilanswer
 

dzing35 a écrit :

Je ne vois pas trop ce qui peux poser problème non plus...
J'ai une fonction similaire pour mon site et cela fonctionne. Je fais du post à la place du get mais je ne pense pas que cela soit le problème...
As-tu essayé de recopié le code de "connexion" dans "testNew" ?


 
Tu as essayé en ne faisant qu'une seule fonction ?


---------------
Fred => http://www.meance.free.fr
n°1622168
hyptnos
GT : Gui iom
Posté le 11-10-2007 à 11:41:15  profilanswer
 

dzing35 a écrit :


 
Tu as essayé en ne faisant qu'une seule fonction ?


 
Oui car j'ai recommencé tout depuis zero en prenant gare a la syntaxe, au guillemet simple , double, fait des function plus propre etc donc la fonction ajax dans une et unique fonction
 

Code :
  1. function sendForm(){
  2. //Récupération des variables du formulaires
  3. var title = document.getElementById('title').value;
  4. var idCat = document.getElementById('inptSelect').options[document.getElementById('inptSelect').selectedIndex].value;
  5. var resum = document.getElementById('resum').value;
  6. var corp = document.getElementById('corp').value;
  7. var source = document.getElementById('source').value;
  8. var urlSrc = document.getElementById('urlSrc').value;
  9. var getUrl = "?title="+title+"&idCat="+idCat+"&resum="+resum+"&corp="+corp+"&source="+source+"&urlSrc="+urlSrc;
  10. //
  11. //appel de la fonction connection()
  12. getUrl =  "requete/requete_AddNew.php"+ getUrl;alert(getUrl);
  13. connection();
  14.      //-------------reception des données ------------------
  15.     xhr_object.open("GET",getUrl, true);
  16.     xhr_object.setRequestHeader("Content-Type", "text/html; charset=UTF-8" );
  17.     xhr_object.onreadystatechange = function() {
  18.         if(xhr_object.readyState == 4) {
  19.            if (xhr_object.status == 200 || xhr_object.status == 304){
  20.                  //document.getElementById('reponse').innerHTML =xhr_object.responseText ;
  21.   alert(xhr_object.responseText);
  22.            }
  23.         }
  24.     }
  25.     xhr_object.send(null);
  26. }


 
et la bas toujours pareil la console est vide
et l'alerte est également vide :S

n°1622180
dzing35
Posté le 11-10-2007 à 11:51:23  profilanswer
 

Et en faisant du synchrone, plutôt que de l'asynchrone :

Code :
  1. xhr_object.open("GET",getUrl, false);



---------------
Fred => http://www.meance.free.fr
n°1622241
hyptnos
GT : Gui iom
Posté le 11-10-2007 à 13:14:25  profilanswer
 

c'est réglé, le problème ne venait pas d'ajax ni du php, mais de l'html en lui même pffff que de recherche pour rien
 
en effet dans mon formulaire HTML j'avais mis un  
 
input type="submit"           (par habitude)
et vu que je vais un onClick et l'apel de la fonction Ajax c'est la que sa coincait
 
Donc j'ai mis un  
 
input type button
 
et sa roule
 
En tout cas merci :)

n°1622281
fred777888​999
Posté le 11-10-2007 à 13:51:55  profilanswer
 

:) Bon, c rassurant qq part, en effet, je fais plein d'ajax avec ff et j'avais jamais rencontre ca :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Ajax] Pb sous firefox de xhr_objet.open et responseText

 

Sujets relatifs
[UML] Tools open source pour faire de l'UML ?Intégrer un effet de scriptaculous.js dans Ajax.Updater
Vecteur de pointeurs d objetProbèmes fond IE/Firefox
Cadre fixe sous IE décalé sous firefox[AJAX] Tableau HTML, lignes et colonnes dynamiques
Grand concours sur les technos ObjetQuid d'Open Watcom de nos jours ?
suppression d'objet d'un arraylist[RESOLU] [Ajax] Pb de binding objet avec Prototype
Plus de sujets relatifs à : [Ajax] Pb sous firefox de xhr_objet.open et responseText


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR