Partage
  • Partager sur Facebook
  • Partager sur Twitter

utiliser une variable dans un histogramme à baton [js]

Sujet résolu
    20 janvier 2006 à 21:02:14

    Bonjour à tous
    Voici un script intéressant pour créer un histogramme à baton :)

    // Déclaration du tableau des X
    var tabX=new MakeTab('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','32','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50');

    // Déclaration du tableau des Y
    var tabY=new MakeTab(1703,1722,1773,1813,1011,956,1683,1697,1548,1781,1696,1013,1120,1771,1813,1726,1624,986,966,942,1658,1729,1765,1706,1711,1221,1067,1368,1831,1187);



    // Rien à toucher à partir d'ici
    function AffHisto(tabx,taby,incX,Y,titre,dX,dY,decal) {
    //Si la valeur est négative
    //if (taby<0) {mult=-1} else {mult=1};
    // Déclaration des variables ie et ns
            var ie="";var ns="";
    // .length  permet de connaitre le moment ou la variable taby s'arrete
            var nb=taby.length;
    //GetMax()   Prend la plus grande valeur de taby
            var max=GetMax(taby);
    //GetMin()   Prend la plus petite valeur de taby
            var min=GetMin(taby);
    // La variable incy est égal à la hauteur sur la valeur max pour la position Y
            var incY=Y/max;
            var tailleY=0; var tailleX=0;
    // Demarrage d'une boucle i commence à 0; vérifie que i est inférieur ou égal à nb(nb est égal au nombre de données); incrémentation de la valeur i j'usqu'a obtenir la valeur i=nb ou la condition ne sera plus réalisé et la boucle s'interrompera.
            for(var i=0;i<nb;i++)
         
    //La fonction math.floor permet de récupérer l'entier de la valeur()
    // exemple:  x = Math.floor(3.99);
    //donne x = 3

    // La variable taille Y est la variable définitive permettant de multiplier la hauteur(définit à 100) par la donnée qu'on veut mettre en histogramme
            {       tailleY=Math.floor(taby[i]*incY);
                    tailleX=Math.floor(incX);

    // On a un changement de couleur si une valeur i de la valeur Y est égale à la valeur max ou la valeur min;  || signifie la fonction ou
            var nom="histo.gif"; if ((taby[i]==max)||(taby[i]==min)) {nom="orange.gif"}



            //+=            Ajoute l'opérande de gauche par l'opérande de droite et stocke le résultat dans l'opérande de gauche.
            //DIV style=    On définit la position du block de l'histogrammme
    //position:absolute    permet de placer un block n'importe où sur la page
    //height:100   la hauteur du block
    // top:"+(dY-tailleY)+"     position par rapport au haut de la page
    //left:"+(dX+i*(incX+1))+"   position par rapport à la gauche de la page

                    ie+="<DIV style='position:absolute;height:100;top:"+(dY-tailleY)+";left:"+(dX+i*(incX+1))+"'>";

    // fonction de l'image( Alignement verticale par le bas; pas de bordure; affichage de l'image par la variable nom; hauteur de l'image par height="+tailleY+"; affichage de la valeur de l'mage par alt='"+tabx[i]+" : "+(taby[i])+"')
                    ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx[i]+" : "+(taby[i])+"'>";
    // affichage de la valeur en X (FONT size= taille de la police...)
                    ie+="<BR><FONT size='-2'><CENTER>"+tabx[i].substring(0,2)+"</CENTER></FONT>"+"</DIV>";

    //Partie facultative
                    ns+="<LAYER height=100 width="+incX+" top='"+(dY-tailleY)+"' left='"+(dX+i*(incX+1))+"'>";
                    ns+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx[i]+" : "+(taby[i])+"'>";
                    ns+="<BR><FONT size='-2'><CENTER>"+tabx[i].substring(0,2)+"<BR>"+tabx[i].substring(3,5)+"</CENTER></FONT>"+"</LAYER>";
    //Fin de la partie facultative   
            }
    // Demarrage d'une boucle i commence à 0; vérifie que i est inférieur ou égal à Math.round(max/decal)(math.round arrondi à l'entier au plus proche(prend la plus grande valeur de tabY sur 100)); incrémentation de la valeur i j'usqu'a obtenir la valeur i=nb ou la condition ne sera plus réalisé et la boucle s'interrompera.
            for(i=0;i<=Math.round(max/decal);i++) {
    // Permet l'affichage des valeurs à l'ordonnée suivant le nombre maximum
                    ie+="<DIV style='position:absolute;top:"+(dY-decal*i*(incY))+";left:"+(dX-5)+"'><IMG src='red.gif' height='1' width='"+(nb*(incX+1)+5)+"'></DIV>";
                    ie+="<DIV style='position:absolute;top:"+(dY-8-decal*i*(incY))+";left:"+(dX-30)+"'><FONT size='-2' color='red'>"+(i*decal)+"</FONT></DIV>";

    //Partie facultative
                    ns+="<LAYER top='"+(dY-decal*i*(incY))+"' left='"+(dX-5)+"'><IMG src='red.gif' height='1' width='"+(nb*(incX+1)+5)+"'></LAYER>";
                    ns+="<LAYER top='"+(dY-8-decal*i*(incY))+"' left='"+(dX-30)+"'><FONT size='-2' color='red'>"+(i*decal)+"</FONT></LAYER>";
    //Fin de la partie facultative
            }

    // Si tous les éléments DIV ou les éléments HTML qui possède un attribut id alors on affichera la variable (ie) sinon la variable (ns)
            if ((document.all)||(document.getElementById)) {disp(ie)}
            else {disp(ns)}
    }

    function GetMax(tab) {
            var max=tab[0];
            var nb=tab.length;
            for(var i=0;i<nb;i++)
                    {max=Math.max(max,tab[i]);}
            return max;
    }
    function GetMin(tab) {
            var min=tab[0];
            var nb=tab.length;
            for(var i=0;i<nb;i++)
                    {min=Math.min(min,tab[i]);}
            return min;
    }
    function MakeTab() {
            this.length = MakeTab.arguments.length;
            for (var i = 0; i < this.length; i++)
                    this[i] = MakeTab.arguments[i];
    }
    function disp(txt) { document.write(txt) }




    </SCRIPT>
    <BODY>
    </HEAD>
    <SCRIPT language=javascript>
            // Affichage ici
            // AffHisto(coordonnées en X,en Y,largeur d'une barre, hauteur,titre,position en X, position en Y, increment de l'echelle) {
            AffHisto(tabX,tabY,15,220,'',100,300,100);
    </SCRIPT>


    Je cherche à utiliser une variable javascript à la place des constantes o_O
    Je m'explique je cherche une solution pour supprimer les constantes sur l'axe Y
    et les remplacer par une variable javascript

    Avec ceci sa fonctionne
    // Déclaration du tableau des Y
    var tabY=new MakeTab(1703,1722,1773,1813,1011);

    Mais pas avec ceci
    var variable=(1703,1722,1773,1813,1011);
    var tabY=new MakeTab(variable);
    Je ne vois pas la différence <question></question>
    Ci quelqu'un a une idée à mon problème?
    Peo ;)
    • Partager sur Facebook
    • Partager sur Twitter
      22 janvier 2006 à 10:33:58

      Citation : peofofo

      Avec ceci sa fonctionne
      // Déclaration du tableau des Y
      var tabY=new MakeTab(1703,1722,1773,1813,1011);

      Mais pas avec ceci
      var variable=(1703,1722,1773,1813,1011);
      var tabY=new MakeTab(variable);



      Déjà tu ne définit pas ton tableau correctement il faut faire comme ça :


      var variable = [1703,1722,1773,1813,1011];
      var variable = new array(1703,1722,1773,1813,1011);


      Ensuite tu ne peux pas mettre de tableau en argument de ta fonction (puisqu'elle compte le nombre d'arguments et non pas la taille d'un éventuel tableau). Donc soit tu modifie la fonction MakeTab pour qu'elle reçoive en argument un tableau soit tu appelle ta fonction comme suit:


      var tabY=new MakeTab(variable[0],variable[1],variable[2],variable[3],variable[4],variable[5]...);
      • Partager sur Facebook
      • Partager sur Twitter
        22 janvier 2006 à 10:40:37

        Hello,

        Sinon c'est faisable en pur CSS...

        :waw:

        Si si :p

        C'est Ici
        • Partager sur Facebook
        • Partager sur Twitter
          23 janvier 2006 à 11:27:36

          Merci de vos réponses
          Je vous explique pourquoi je ne peut pas utiliser les valeurs en Y dans le script.
          J'utilise une variable définit par des applets de l'automate pour la valeur en Y.
          Cette variable est définit en JavaScript de type
          var variable = "";
          Le but est de transmettre la variable qui donne la valeur Y de l'histogramme.
          J'ai réussi après plusieurs essai.
          Le code donne ceci:
          J'ai sur la page 1.html

          <script type="text/javascript"
          function transmettreParams(url, site, variable) { 
             url += "?"
             url += variable; 
             location.href = url;
          window.open(url);
          window.location = site;
          }
          </script>
          <script type="text/javascript">
          var variable = "1,543435,354354,373574,34364,4553";
          </script>
          <a href='javascript:transmettreParams("maPage.html","1.html", variable)'>aller à mapage.html</a>

          Je transmet ainsi la variable dans le popup mapage.html grace à l'url de type mapage.html?1,543435,354354,373574,34364,4553
          Ensuite je récupère la variable dans le popup mapage.html

          <script language="JavaScript" type="text/javascript"
             var variable =location.search.substring(1);
          document.write(variable);
          </script>

          Document.write() permet de me confirmer le transfert de variable
          Mais c'est maintenant que ca se complique o_O
          Je n'arrive pas à intégrer la variable pour me donner la valeur Y de l'histogramme.
          J'ai essayé ceci:

          // Déclaration du tableau des Y
          var tabY=new MakeTab(variable)//--> c'est ici ca ne fonctionne pas
          var variable=location.search.substring(1);

          J'ai testé comme tu m'as dit Fedaykin:

          var variable = [1703,1722,1773,1813,1011];
          var variable = new array(1703,1722,1773,1813,1011);
          var tabY=new MakeTab(variable[0],variable[1],variable[2],variable[3],variable[4],variable[5]...);

          L'histogramme n'affiche toujours pas les valeurs Y
          :(
          Peofofo
          • Partager sur Facebook
          • Partager sur Twitter
            23 janvier 2006 à 12:23:58

            Je vais faire quelque essais...

            Et sinon je me suis mal expliqué mais ce sont deux méthodes différentes...il faut prendre l'une ou l'autre ;)

            Citation : peofofo

            J'ai testé comme tu m'as dit Fedaykin:

            var variable = [1703,1722,1773,1813,1011];
            //ou
            var variable = new array(1703,1722,1773,1813,1011);
            var tabY=new MakeTab(variable[0],variable[1],variable[2],variable[3],variable[4],variable[5]...);



            L'histogramme n'affiche toujours pas les valeurs Y



            Edit : Voila après plusieurs essais j'arrivent à faire marcher le script avec des variables.

            <script type="text/javascript">
                    // Déclaration du tableau des X
                    var tabX=new MakeTab('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','32','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50');

                    // Déclaration du tableau des Y
                    var test = [500,500,1773,1813,1011,956,1683,1697,1548,1781,1696,1013,1120,1771,1813,1726,1624,986,966,942,1658,1729,1765,1706,1711,1221,1067,1368,1831,1187];
                    var tabY=new MakeTab(test[0],test[1],test[2],test[3],test[4],test[5],test[6],test[7],test[8],test[9],test[10],test[1],test[11],test[12],test[13],test[14],test[15],test[16],test[17],test[18],test[19],test[20],test[21],test[22],test[23],test[24],test[25],test[26],test[27],test[28],test[29]);



                    // Rien à toucher à partir d'ici
                    function AffHisto(tabx,taby,incX,Y,titre,dX,dY,decal) {
                    //Si la valeur est négative
                    //if (taby<0) {mult=-1} else {mult=1};
                    // Déclaration des variables ie et ns
                    var ie="";var ns="";
                    // .length  permet de connaitre le moment ou la variable taby s'arrete
                    var nb=taby.length;
                    //GetMax()   Prend la plus grande valeur de taby
                    var max=GetMax(taby);
                    //GetMin()   Prend la plus petite valeur de taby
                    var min=GetMin(taby);
                    // La variable incy est égal à la hauteur sur la valeur max pour la position Y
                    var incY=Y/max;
                    var tailleY=0; var tailleX=0;
                    // Demarrage d'une boucle i commence à 0; vérifie que i est inférieur ou égal à nb(nb est égal au nombre de données); incrémentation de la valeur i j'usqu'a obtenir la valeur i=nb ou la condition ne sera plus réalisé et la boucle s'interrompera.
                    for(var i=0;i<nb;i++)

                    //La fonction math.floor permet de récupérer l'entier de la valeur()
                    // exemple:  x = Math.floor(3.99);
                    //donne x = 3

                    // La variable taille Y est la variable définitive permettant de multiplier la hauteur(définit à 100) par la donnée qu'on veut mettre en histogramme
                    {       tailleY=Math.floor(taby[i]*incY);
                                    tailleX=Math.floor(incX);

                    // On a un changement de couleur si une valeur i de la valeur Y est égale à la valeur max ou la valeur min;  || signifie la fonction ou
                    var nom="histo.gif"; if ((taby[i]==max)||(taby[i]==min)) {nom="orange.gif"}



                    //+=            Ajoute l'opérande de gauche par l'opérande de droite et stocke le résultat dans l'opérande de gauche.
                    //DIV style=    On définit la position du block de l'histogrammme
                    //position:absolute    permet de placer un block n'importe où sur la page
                    //height:100   la hauteur du block
                    // top:"+(dY-tailleY)+"     position par rapport au haut de la page
                    //left:"+(dX+i*(incX+1))+"   position par rapport à la gauche de la page

                                    ie+="<DIV style='position:absolute;height:100;top:"+(dY-tailleY)+";left:"+(dX+i*(incX+1))+"'>";

                    // fonction de l'image( Alignement verticale par le bas; pas de bordure; affichage de l'image par la variable nom; hauteur de l'image par height="+tailleY+"; affichage de la valeur de l'mage par alt='"+tabx[i]+" : "+(taby[i])+"')
                                    ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx[i]+" : "+(taby[i])+"'>";
                    // affichage de la valeur en X (FONT size= taille de la police...)
                                    ie+="<BR><FONT size='-2'><CENTER>"+tabx[i].substring(0,2)+"</CENTER></FONT>"+"</DIV>";

                    //Partie facultative
                                    ns+="<LAYER height=100 width="+incX+" top='"+(dY-tailleY)+"' left='"+(dX+i*(incX+1))+"'>";
                                    ns+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx[i]+" : "+(taby[i])+"'>";
                                    ns+="<BR><FONT size='-2'><CENTER>"+tabx[i].substring(0,2)+"<BR>"+tabx[i].substring(3,5)+"</CENTER></FONT>"+"</LAYER>";
                    //Fin de la partie facultative   
                    }
                    // Demarrage d'une boucle i commence à 0; vérifie que i est inférieur ou égal à Math.round(max/decal)(math.round arrondi à l'entier au plus proche(prend la plus grande valeur de tabY sur 100)); incrémentation de la valeur i j'usqu'a obtenir la valeur i=nb ou la condition ne sera plus réalisé et la boucle s'interrompera.
                    for(i=0;i<=Math.round(max/decal);i++) {
                    // Permet l'affichage des valeurs à l'ordonnée suivant le nombre maximum
                                    ie+="<DIV style='position:absolute;top:"+(dY-decal*i*(incY))+";left:"+(dX-5)+"'><IMG src='red.gif' height='1' width='"+(nb*(incX+1)+5)+"'></DIV>";
                                    ie+="<DIV style='position:absolute;top:"+(dY-8-decal*i*(incY))+";left:"+(dX-30)+"'><FONT size='-2' color='red'>"+(i*decal)+"</FONT></DIV>";

                    //Partie facultative
                                    ns+="<LAYER top='"+(dY-decal*i*(incY))+"' left='"+(dX-5)+"'><IMG src='red.gif' height='1' width='"+(nb*(incX+1)+5)+"'></LAYER>";
                                    ns+="<LAYER top='"+(dY-8-decal*i*(incY))+"' left='"+(dX-30)+"'><FONT size='-2' color='red'>"+(i*decal)+"</FONT></LAYER>";
                    //Fin de la partie facultative
                    }

                    // Si tous les éléments DIV ou les éléments HTML qui possède un attribut id alors on affichera la variable (ie) sinon la variable (ns)
                    if ((document.all)||(document.getElementById)) {disp(ie)}
                    else {disp(ns)}
                    }

                    function GetMax(tab) {
                    var max=tab[0];
                    var nb=tab.length;
                    for(var i=0;i<nb;i++)
                                    {max=Math.max(max,tab[i]);}
                    return max;
                    }
                    function GetMin(tab) {
                    var min=tab[0];
                    var nb=tab.length;
                    for(var i=0;i<nb;i++)
                                    {min=Math.min(min,tab[i]);}
                    return min;
                    }
                    function MakeTab() {
                    this.length = MakeTab.arguments.length;
                    for (var i = 0; i < this.length; i++)
                                    this[i] = MakeTab.arguments[i];
                    }
                    function disp(txt) { document.write(txt) }

            </script>

            <script type="text/javascript">
                    // Affichage ici
                    // AffHisto(coordonnées en X,en Y,largeur d'une barre, hauteur,titre,position en X, position en Y, increment de l'echelle) {
                    AffHisto(tabX,tabY,15,220,'',100,300,100);
            </script>
            • Partager sur Facebook
            • Partager sur Twitter
              23 janvier 2006 à 12:44:07

              Citation : Fedaykin


              Et sinon je me suis mal expliqué mais ce sont deux méthodes différentes...il faut prendre l'une ou l'autre ;)


              J'ai testé les 2 méthodes. Pourtant celle ci me parait logique

              var variable = new array(1703,1722,1773,1813,1011);
              var tabY=new MakeTab(variable[0],variable[1],variable[2],variable[3],variable[4],variable[5]...);

              Le problème est surment de la fonction MakeTab :o
              • Partager sur Facebook
              • Partager sur Twitter
                23 janvier 2006 à 12:48:38

                Avec l'autre méthode ca marche chez moi en tout cas...(cf edition du post au dessus)
                • Partager sur Facebook
                • Partager sur Twitter
                  23 janvier 2006 à 12:52:21

                  J'ai surement fait une erreur? o_O
                  Tu peus m'envoyer le script entier comme tu l'as rédiger
                  Et encore Merci de m'avoir aidé.
                  Peofofo :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 janvier 2006 à 13:48:41

                    Voila le script complet (je t'explique la partie que j'ai rajouté en dessous...


                    <script type="text/javascript">
                            // Déclaration du tableau des X
                            var tabX=new MakeTab('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','32','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50');

                            // Déclaration du tableau des Y
                                    var variable =location.search.substring(1);
                                    document.write(variable);
                                    var varY = variable.split(",");
                                    var test = new Array(varY.length);
                            for( var i = 0 ; i < varY.length ; i++ ){
                                            test[i] = parseInt(varY[i]);
                                    }
                            var creation_tableau = 'var tabY=new MakeTab(';
                                    for( var i = 0 ; i < (test.length - 1) ; i++ ){
                                            creation_tableau += 'test['+i+'],';
                                    }
                                    creation_tableau += 'test['+i+'])';
                                   
                                    eval(creation_tableau);

                            // Rien à toucher à partir d'ici
                            function AffHisto(tabx,taby,incX,Y,titre,dX,dY,decal) {
                            //Si la valeur est négative
                            //if (taby<0) {mult=-1} else {mult=1};
                            // Déclaration des variables ie et ns
                            var ie="";var ns="";
                            // .length  permet de connaitre le moment ou la variable taby s'arrete
                            var nb=taby.length;
                            //GetMax()   Prend la plus grande valeur de taby
                            var max=GetMax(taby);
                            //GetMin()   Prend la plus petite valeur de taby
                            var min=GetMin(taby);
                            // La variable incy est égal à la hauteur sur la valeur max pour la position Y
                            var incY=Y/max;
                            var tailleY=0; var tailleX=0;
                            // Demarrage d'une boucle i commence à 0; vérifie que i est inférieur ou égal à nb(nb est égal au nombre de données); incrémentation de la valeur i j'usqu'a obtenir la valeur i=nb ou la condition ne sera plus réalisé et la boucle s'interrompera.
                            for(var i=0;i<nb;i++)

                            //La fonction math.floor permet de récupérer l'entier de la valeur()
                            // exemple:  x = Math.floor(3.99);
                            //donne x = 3

                            // La variable taille Y est la variable définitive permettant de multiplier la hauteur(définit à 100) par la donnée qu'on veut mettre en histogramme
                            {       tailleY=Math.floor(taby[i]*incY);
                                            tailleX=Math.floor(incX);

                            // On a un changement de couleur si une valeur i de la valeur Y est égale à la valeur max ou la valeur min;  || signifie la fonction ou
                            var nom="histo.gif"; if ((taby[i]==max)||(taby[i]==min)) {nom="orange.gif"}



                            //+=            Ajoute l'opérande de gauche par l'opérande de droite et stocke le résultat dans l'opérande de gauche.
                            //DIV style=    On définit la position du block de l'histogrammme
                            //position:absolute    permet de placer un block n'importe où sur la page
                            //height:100   la hauteur du block
                            // top:"+(dY-tailleY)+"     position par rapport au haut de la page
                            //left:"+(dX+i*(incX+1))+"   position par rapport à la gauche de la page

                                            ie+="<DIV style='position:absolute;height:100;top:"+(dY-tailleY)+";left:"+(dX+i*(incX+1))+"'>";

                            // fonction de l'image( Alignement verticale par le bas; pas de bordure; affichage de l'image par la variable nom; hauteur de l'image par height="+tailleY+"; affichage de la valeur de l'mage par alt='"+tabx[i]+" : "+(taby[i])+"')
                                            ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx[i]+" : "+(taby[i])+"'>";
                            // affichage de la valeur en X (FONT size= taille de la police...)
                                            ie+="<BR><FONT size='-2'><CENTER>"+tabx[i].substring(0,2)+"</CENTER></FONT>"+"</DIV>";

                            //Partie facultative
                                            ns+="<LAYER height=100 width="+incX+" top='"+(dY-tailleY)+"' left='"+(dX+i*(incX+1))+"'>";
                                            ns+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx[i]+" : "+(taby[i])+"'>";
                                            ns+="<BR><FONT size='-2'><CENTER>"+tabx[i].substring(0,2)+"<BR>"+tabx[i].substring(3,5)+"</CENTER></FONT>"+"</LAYER>";
                            //Fin de la partie facultative   
                            }
                            // Demarrage d'une boucle i commence à 0; vérifie que i est inférieur ou égal à Math.round(max/decal)(math.round arrondi à l'entier au plus proche(prend la plus grande valeur de tabY sur 100)); incrémentation de la valeur i j'usqu'a obtenir la valeur i=nb ou la condition ne sera plus réalisé et la boucle s'interrompera.
                            for(i=0;i<=Math.round(max/decal);i++) {
                            // Permet l'affichage des valeurs à l'ordonnée suivant le nombre maximum
                                            ie+="<DIV style='position:absolute;top:"+(dY-decal*i*(incY))+";left:"+(dX-5)+"'><IMG src='red.gif' height='1' width='"+(nb*(incX+1)+5)+"'></DIV>";
                                            ie+="<DIV style='position:absolute;top:"+(dY-8-decal*i*(incY))+";left:"+(dX-30)+"'><FONT size='-2' color='red'>"+(i*decal)+"</FONT></DIV>";

                            //Partie facultative
                                            ns+="<LAYER top='"+(dY-decal*i*(incY))+"' left='"+(dX-5)+"'><IMG src='red.gif' height='1' width='"+(nb*(incX+1)+5)+"'></LAYER>";
                                            ns+="<LAYER top='"+(dY-8-decal*i*(incY))+"' left='"+(dX-30)+"'><FONT size='-2' color='red'>"+(i*decal)+"</FONT></LAYER>";
                            //Fin de la partie facultative
                            }

                            // Si tous les éléments DIV ou les éléments HTML qui possède un attribut id alors on affichera la variable (ie) sinon la variable (ns)
                            if ((document.all)||(document.getElementById)) {disp(ie)}
                            else {disp(ns)}
                            }

                            function GetMax(tab) {
                            var max=tab[0];
                            var nb=tab.length;
                            for(var i=0;i<nb;i++)
                                            {max=Math.max(max,tab[i]);}
                            return max;
                            }
                            function GetMin(tab) {
                            var min=tab[0];
                            var nb=tab.length;
                            for(var i=0;i<nb;i++)
                                            {min=Math.min(min,tab[i]);}
                            return min;
                            }
                            function MakeTab() {
                            this.length = MakeTab.arguments.length;
                            for (var i = 0; i < this.length; i++)
                                            this[i] = MakeTab.arguments[i];
                            }
                            function disp(txt) { document.write(txt) }

                    </script>

                    <script type="text/javascript">
                            // Affichage ici
                            // AffHisto(coordonnées en X,en Y,largeur d'une barre, hauteur,titre,position en X, position en Y, increment de l'echelle) {
                            AffHisto(tabX,tabY,15,220,'',100,300,100);
                    </script>



                    // Déclaration du tableau des Y
                                    var variable =location.search.substring(1);
                                    document.write(variable);
                                    var varY = variable.split(",");
                                    var test = new Array(varY.length);
                            for( var i = 0 ; i < varY.length ; i++ ){
                                            test[i] = parseInt(varY[i]);
                                    }
                            var creation_tableau = 'var tabY=new MakeTab(';
                                    for( var i = 0 ; i < (test.length - 1) ; i++ ){
                                            creation_tableau += 'test['+i+'],';
                                    }
                                    creation_tableau += 'test['+i+'])';
                                   
                                    eval(creation_tableau);


                    Alors ce que je fais... je récupère dans une variable la chaine de caractère passé en adresse, j'explode la chaine dans un tableau grace a la virgule. Ensuite je crée mon tableau test qui contiendra des valeurs entières correspondante aux chaines de caractères, et enfin je crée une chaine de caractère qui est en fait un commande javascript (qui pourra donc varier) et au final j'évalue cette chaine qui est:


                    'var tabY=new MakeTab(test[0],test[1],test[2],test[3],test[4],test[5]...);'//autant que l'on a besoin


                    Bon c'est de la grosse bidouille mais ca march. Par contre avec les valeurs que tu as utilisé c'est un peu gros et le navigateur a du mal... moi j'ai utilisé : ?1,543,435,354,354,373,574,34,364,45,53,500 et ca marche très bien.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 janvier 2006 à 19:07:50

                      Merci Fedaykin :)
                      L'histogramme fonctionne très bien à partir d'une variable sur une autre page.
                      C'est très gentil d'avoir consacré du temps à mon problème.
                      Cela fait environ 1 mois que je cherchais une solution.
                      Le but de cet histogramme est de relever les courbes des valeurs du coupleur relié a l'Automate Programmable Industriel commandé à distance.
                      Encore Merci
                      Peofofo

                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 janvier 2006 à 19:11:42

                        De rien ca fait plaisir de pouvoir aider ;)^^

                        Bonne continuation :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 mars 2006 à 16:25:28

                          Si vous avez des questions sur l'histogramme!
                          mon adresse e-mail:
                          <email nom="peofofo@caramail.fr"></email>
                          • Partager sur Facebook
                          • Partager sur Twitter

                          utiliser une variable dans un histogramme à baton [js]

                          × 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