Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher une valeur de mon tableau

    2 août 2011 à 1:40:34

    bonsoir tout le monde!

    j'ai un problème et j’espère avoir une aide SVP,

    voici mon code:
    <script>
    
    var canvas = document.getElementById("canvas1");
    if (canvas.getContext)
    {
      context = canvas.getContext('2d');
    }
    
    function drawCurve()
    {
    
     var xhr; 
     
        try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
        catch (e) 
        {
            try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
            catch (e2) 
            {
              try {  xhr = new XMLHttpRequest();     }
              catch (e3) {  xhr = false;   }
            }
         }
     
        xhr.onreadystatechange  = function()
        { 
             if(xhr.readyState  == 4)
             {
                  if(xhr.status  == 200) {
    				tab = xhr.responseText.split(";");
    				canvas_width = 800;
    				canvas_height = 600;				
    				var N = tab.length;
    				var x = new Array;
    				var y = new Array;
    				var dt = canvas_width / (N - 1); // atention si N = 1
    		// trouver le max (en val abs)
    		        function valmax(tab)
                   {
                   var max = 0; // On a maintenant des valeurs positives.
                   var val, i;
                  for (i = 0 ; i < tab.length ; i++)
                  {
                  if (tab[i] < 0)
                  val = -tab[i]; 
                  else
                  val = tab[i];
                  if (max < val)
                  max = val;
                  }
                  return max;
                  } 
    			  document.write(max);
    


    mon probleme c'est que je veus afficher ma valeur max, j'ai fait document.write(max) mais ya rien qui m'affiche.

    j'espere que vous pouvez m'aider!
    merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      2 août 2011 à 11:22:18

      Salut,

      Un return "stop" l'exécution d'un script. Pour lui c'est équivalent à la fin. De plus, il me semble que ta ligne en question est en, dehors de la fonction.

      Au passage, Math.abs(n) renvoi directement la valeur absolue d'un nombre.
      • Partager sur Facebook
      • Partager sur Twitter
        2 août 2011 à 11:40:36

        Salut,

        Il faudrait
        1) que tu nous mette le code entier (je ne vois pas où tu lances ton xhr)
        2) que tu indentes mieux ton code, c'est une horreur à lire
        3) que tu nous montres où tu appelles la fonction valmax

        Au passage, mettre une fonction dans le callback, ça ne sert pas à grand chose (du moins vu comment tu le fais). Mais j'attends d'avoir ton code complet ^^
        • Partager sur Facebook
        • Partager sur Twitter
        Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
          2 août 2011 à 11:50:21

          Bonjour! merci pour votre reponse:
          voici mon code complet:
          <html>
          <canvas id="canvas1" width="800" height="600" style="border:1px solid #CCC">
           Canvas requiert un navigateur moderne: Chrome, Firefox, IE9, Safari.
          </canvas>
          
          <script>
          
          var canvas = document.getElementById("canvas1");
          if (canvas.getContext)
          {
            context = canvas.getContext('2d');
          }
          
          function drawCurve()
          {
          
           var xhr; 
           
              try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
              catch (e) 
              {
                  try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
                  catch (e2) 
                  {
                    try {  xhr = new XMLHttpRequest();     }
                    catch (e3) {  xhr = false;   }
                  }
               }
           
              xhr.onreadystatechange  = function()
              { 
                   if(xhr.readyState  == 4)
                   {
                        if(xhr.status  == 200) {
          				tab = xhr.responseText.split(";");
          				canvas_width = 800;
          				canvas_height = 600;				
          				var N = tab.length;
          				var x = new Array;
          				var y = new Array;
          				var dt = canvas_width / (N - 1); // atention si N = 1
          		// trouver le max (en val abs)
          		        function valmax(tab)
                         {
                         var max = 0; // On a maintenant des valeurs positives.
                         var val, i;
                        for (i = 0 ; i < tab.length ; i++)
                        {
                        if (tab[i] < 0)
                        val = -tab[i]; 
                        else
                        val = tab[i];
                        if (max < val)
                        max = val;
                        }
                        return max;
                        } 
          			  document.write(max);
          			  //alert("print 'max = val'");
          				 //max=canvas_height;
          				 
          				 for (i = 0; i < N; ++i) { 
          				  x[i] = i * dt;
          				  value = parseFloat(tab[i]);
          				  y[i] = canvas_height/2 -(10*value); // apmrès on ajuste ici le 10
          				 }
          				 // TracŽ
          				 context.beginPath();
          				 context.strokeStyle='red';
          				 context.lineWidth=2;
          				 for (i = 0; i < N - 1; ++i) {
          				  context.moveTo(x[i], y[i]);
          				  context.lineTo(x[i+1], y[i+1]);
          				 }
          				 context.stroke();
          				
                        } else {
          				alert("DEBUG1");
          			}
                   }
              }; 
               
             xhr.open("GET", "http://localhost/nexon/nexon.php",  true); 
             xhr.send(null); 
          }
          
          drawCurve();
          
          </script>
          </html>
          


          j'espere avoir une reponse!
          merci.
          • Partager sur Facebook
          • Partager sur Twitter
            2 août 2011 à 11:58:31

            C'est bien ce qu'il me semblait. Tu as une fonction valmax, mais tu ne l'appelles nulle part.
            De plus, au niveau de ton document.write, la variable max n'existe pas, puisqu'elle est définie dans la fonction juste au dessus.

            Ca fait déjà 2 pistes à creuser
            • Partager sur Facebook
            • Partager sur Twitter
            Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
              2 août 2011 à 12:19:38

              Merci pour votre reponse!

              mon code m'affiche bien le graphe et je veus juste savoir si ma valeur maximal existe ou pas pour l'utiliser dans la suite de mon code.
              j'espere avoir une reponse.
              merci
              • Partager sur Facebook
              • Partager sur Twitter

              afficher une valeur de mon tableau

              × 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