Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage undefined alors que renvoi d'une valeur

    26 novembre 2011 à 20:21:25

    Bonjour à tous je suis en train de faire un petit programme en JS seulement voilà j'ai un petit problème, j'appelle une fonction httprequest) qui s'appelle getNote(titre) celle ci s’exécute correctement et le xhr_object de retour est le bon et je l'utilise avec innerHTML, j'ai tester avec un alert et firebug pour voir si une quelconque erreur était détecté mais même avec des points d'arrêts le résultat et le bon.

    Seulement voilà, lorsque je veux l'afficher sur ma page web ça me marque undefined.

    PS : J'utilise fancybox, sur la page web normale ça affiche le bon résultat, sur le fancybox ça affiche undefined

    voilà mon code :

    function getNote(title) {
      var xhr_object = null; 
      if(window.XMLHttpRequest) // Firefox 
        xhr_object = new XMLHttpRequest(); 
      else if(window.ActiveXObject) // Internet Explorer 
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
      else { // XMLHttpRequest non supporté par le navigateur 
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        return; 
      } 
    
     	xhr_object.open("GET", "./php/getNote.php?id="+title, true); 
     	xhr_object.send(null); 
     	xhr_object.onreadystatechange = function() { 
        if(xhr_object.readyState == 4)
          //document.getElementById("note"+title).innerHTML = 'Note : ' + xhr_object.responseText;
    	  return xhr_object.responseText;
    	}
    }
    $(document).ready(function() {
      $("a[rel=photo]").fancybox({
      'transitionIn'    : 'none',
      'transitionOut'   : 'none',
      'cyclic'          : 'true',
      'titlePosition'   : 'inside',
      'titleFormat'	    : function(title) {
    	var reg = new RegExp("[/*/]+", "g");
    	var tabTitre = title.split(reg);
    	var note = getNote(tabTitre[1]);
    	var titre = 'Post&eacute;e par '+tabTitre[0]+' <br/>';
            titre += '<img src="img/plus.jpg" alt="+" class="plus" onClick="chang(\''+tabTitre[1]+'\', \'plus\');"/>&nbsp;';
            titre += '<img src="img/moins.jpg" alt="-" class="moins" onClick="chang(\''+tabTitre[1]+'\', \'moins\');" />&nbsp;';
            titre += '<span id="note'+tabTitre[1]+'">Note : '+note+'</span>'; 
            //titre += '<span id="note'+tabTitre[1]+'">Note : '+tabTitre[2]+'</span>'; 
            return titre;
        }
      });
    });
    


    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2011 à 21:28:30

      Mettre un return dans un appel asynchrone n'a pas de sens.

      Tu pourrais pas plutôt créer un tableau JS de tes correspondances en PHP ? o_O
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2011 à 23:30:44

        Que ce soit return ou la ligne commenter innerHTML, l'affichage avec Fancybox ne marche pas ...

        Non je fais d'autres traitements derrière qui ne me permette pas de faire le tableau en PHP :(
        • Partager sur Facebook
        • Partager sur Twitter
          27 novembre 2011 à 3:17:01

          Je parle d'un tableau de correspondance qui te permettrait de te passer de la requête Ajax.
          • Partager sur Facebook
          • Partager sur Twitter

          Affichage undefined alors que renvoi d'une valeur

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown