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

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Ajax - xmlhttprequest - Problème pour lancer deux fonctions

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajax - xmlhttprequest - Problème pour lancer deux fonctions

n°2274925
kishibojin
Mais euh !
Posté le 02-02-2016 à 20:39:56  profilanswer
 

Bonjour tout le monde,
 
Avant de balancer bêtement mon code et attendre que quelqu'un fasse le debug, je viens vous voir avant tout pour m'aider à trouver des pistes à mon problème. Je vous l'explique en quelques mots.
 
A l'heure actuelle, j'ai une fonction A utilisant xmlhttprequest pour mettre à jour le <div id="A"> de ma page. Si je fais un appelle de cette fonction, elle fonctionne parfaitement bien et rempli sa mission.  
 
Maintenant, j'ai une autre fonction B utilisant également xmlhttprequest pour mettre à jour le <div id="B">. Là encore, si j'appelle cette fonction, elle fonctionne très bien et rempli le bon <div>.
 
Où cela pose problème, c'est lorsque j'appelle ma fonction A suivi de ma fonction B. Ma fonction A va remplir le <div id="A">, ma fonction B va remplir le <div id="B">. Mais au final, le <div id="A"> s'efface.  
 
Je me suis dit qu'il y avait peut être un problème dans l'une de mes fonctions lorsque je récris mon <div>. Style je prends le mauvais ID mais non. J'ai essayé également d'inverser l'appel des fonctions. Le problème est toujours existant par contre il s'inverse également.  
 
Auriez-vous une idée de quoi cela pourrait provenir?  
 
Un grand merci d'avance

mood
Publicité
Posté le 02-02-2016 à 20:39:56  profilanswer
 

n°2274928
MaybeEijOr​Not
but someone at least
Posté le 02-02-2016 à 21:45:55  profilanswer
 

Bonjour,
 
Tu as bien 2 fonctions différentes A et B? Ce n'est pas un appel de la même fonction mais avec des paramètres différents?
Comment tu remplies tes div? AppendChild?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2274929
kishibojin
Mais euh !
Posté le 02-02-2016 à 21:59:33  profilanswer
 

Non non... c'est bien deux fonctions différentes.
 

Code :
  1. $(function(){
  2.         var path = "../../documents/main/";
  3.         RefreshNews(path+'News/');
  4.         RefreshDoc(path+'DocMain/');
  5. });


 
Pour remplir mon div, je procède la façon suivante.  
 

Code :
  1. xhr.onreadystatechange = function(){
  2.             // Test si tout est ok pour faire le nécessaire
  3.             if(xhr.readyState == 4 && xhr.status == 200){
  4.                     leselect = xhr.responseText;
  5.                     $("#DropNews" ).html(leselect);
  6.             }
  7.   document.body.style.cursor='default';
  8.     }


 
bien entendu  le $("DropNews" ) devient $("#DropDoc" ) dans l'autre fonction. Et au début de chaque fonction, je déclare xhr
 

Code :
  1. if(window.XMLHttpRequest){ // Firefox et autres
  2.    xhr = new XMLHttpRequest();
  3. }
  4. else if(window.ActiveXObject){ // Internet Explorer  
  5.    try {
  6.                 xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  7.             } catch (e) {
  8.                 xhr = new ActiveXObject("Microsoft.XMLHTTP" );         
  9.             }
  10. }
  11. else { // XMLHttpRequest non supporté par le navigateur  
  12.    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest!" );
  13.    xhr = false;
  14. }


n°2274931
MaybeEijOr​Not
but someone at least
Posté le 02-02-2016 à 22:47:32  profilanswer
 

Pour information, l'objet ajax existe en jQuery, non parce que je trouve ça bizarre de mélanger du jquery avec du js classique.
 
Ton problème se situe surement au niveau de la portée de tes variables et/ou de comment sont appelées tes fonctions.
Déclarer localement tes objets xmlHttpRequest peut peut-être régler le problème mais vu son fonctionnement je n'en suis pas certain, créer des objets avec des noms différents permettra d'écarter définitivement le problème de portée des variables.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2274992
kishibojin
Mais euh !
Posté le 03-02-2016 à 20:00:29  profilanswer
 

Merci beaucoup :)  
 
Du coup j'ai réécrit mes fonctions en utilisant que jquery avec l'objet ajax et du coup, ça fonctionne plutôt bien.
 
Je dois juste corriger maintenant un autre petit bug qui est survenu mais je dois juste trouver du coup quand bien appeler ma fonction


Message édité par kishibojin le 03-02-2016 à 20:01:09

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Ajax - xmlhttprequest - Problème pour lancer deux fonctions

 

Sujets relatifs
problème liste déroulante avec BDDProblème d'adaptation du header avec bootstrap
Probleme compatibilité VBA MSFLEXGRID Excel 2013Problème de date dans base de données
Problème avec DreamweaverProblème avec mon programme
(VB.NET) Problème integration dll (au logiciel SmarTeam)Système de commentaire sur liste en PHP/AJAX
Chemin relatif : problèmeproblème double comparaison
Plus de sujets relatifs à : Ajax - xmlhttprequest - Problème pour lancer deux fonctions


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