Fonction de callback

Fermé
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 - 28 août 2015 à 11:51
 Utilisateur anonyme - 28 août 2015 à 15:27
Bonjour,

Je suis bloqué depuis plusieurs sur un problème qui me parait pourtant tout con, alors avant de m'arracher les cheveux, si quelqu'un à une solution à m'apporter je prends ...

mon problème est en javascript, mais comme il n'y a pas de section dédié, je me permet de le poster ici.

Avant toutes choses, merci de ne pas me donner une solution avec jquery car ce n'est pas l'objectif, en jquery je n'aurais pas le problème.

Ce que je souhaite c'est que lorsqu'on appelle la fonction editLine() celle ci appelle une fonction popup() dans laquelle je ferai des traitement ultérieurement, cette même fonction popup() appelle la fonction ajaxPopup() qui s'occupe de chercher le futur contenu d'un div qui est créé par la fonction editLine().

Voici mon code :

function editLine(data,id) {
        
        var maindiv = document.getElementById('maindiv');
        if( document.getElementById('popup_'+id)) {
            document.getElementById('popup_'+id).style.display = 'block';
        } else {
            var newProp = addElement('div', 'popup_'+id, 'divEdit');
            newProp.setAttribute('draggable', 'true');
            document.body.insertBefore(newProp, maindiv); 
            newProp.innerHTML = popup(id);
        }
        return true;

 function popup(id) {
       var retour =ajaxPopup(id);
       return retour;
    }

function ajaxPopup(id) {
	var xhr = new getXMLHttpRequest();
	xhr.onreadystatechange = function() {
      if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
         console.log(xhr.responseText);
         return xhr.responseText; 
      }
      };
    xhr.open("GET", './ajax/getData.php?type=flagDetail&id='+id , true);
	xhr.send(null);
}

   }


Avec ce code j'ai dans mon div : Undefined. j'ai essayé pas mal d'écriture et de logique différente et je ne parviens jamais à avoir le xhr.responseText dans mon div.

Avez vous une solution à m'apporter ?

Je vous remercie d'avance. P.S. : ma fonction xhr.open fonctionne très bien, le souci n'est pas de ce coté là.

Cdlt.


1 réponse

Utilisateur anonyme
28 août 2015 à 12:05
Alors déjà il y a un section Javascript:

https://forums.commentcamarche.net/forum/javascript-157

Ensuite ta fonction popup ne sert à rien là, car elle fait juste return ajaxPopup(id) donc autant appeler la fonction ajaxPopup directement.

Et sinon essaye de passer ta variable newProp dans ta fonction en même tant que l'id, pour faire newProp.innerHTML = xhr.responseText
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par Xavierdu34 le 28/08/2015 à 14:31
Merci pour la section, j'ignorais son existence ne la trouvant pas dans la liste des forums, ensuite pour ce qui est de ta réponse, évidemment que je peux supprimer cette fonction tel que vous la voyez,mais c'est dans un souci de clarté que j'ai épuré mes fonctions avant de les poster pour ne garder que l'essentiel de la mécanique.

Donc mon objectif c'est récupérer la valeur de xhr.responseText dans newProp.innerHTML si quelqu'un a une idée sans modifier l'architecture des fonctions je reste preneur.
0
Utilisateur anonyme
28 août 2015 à 15:27
Si tu fais un console.log de retour dans ta fonction popup t'as quoi?
0