Récupération d'une variable javascript générer par un popup
Dernière réponse : dans Programmation
Bonjour à tous
Je cherche à récupérer une variable javascript de type( var variable) sur une autre page générer par un popup.
La variable permet de créer un histogramme à baton.
J'ai réussi à récupérer la variable par l'intermédiare de l'url de type mapage.html?variable
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 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
Je n'arrive pas à intégrer la variable pour me donner la valeur Y de l'histogramme
Le script de l'histogramme que je détail pour simplifier
// 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(variable); --> c'est ici ca ne fonctionne pas
var variable=location.search.substring(1);
function AffHisto(tabx,taby,incX,Y,titre,dX,dY,decal) {
// 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*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==max)||(taby==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+" : "+(taby)+"')//
ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx+" : "+(taby)+"'>";
// affichage de la valeur en X (FONT size= taille de la police...)
ie+="<BR><FONT size='-2'><CENTER>"+tabx.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+" : "+(taby)+"'>";
ns+="<BR><FONT size='-2'><CENTER>"+tabx.substring(0,2)+"<BR>"+tabx.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);}
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);}
return min;
}
function MakeTab() {
this.length = MakeTab.arguments.length;
for (var i = 0; i < this.length; i++)
this = MakeTab.arguments;
}
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>
</BODY></HTML>
Fin du script
Merci de votre aide
Peo
Je cherche à récupérer une variable javascript de type( var variable) sur une autre page générer par un popup.
La variable permet de créer un histogramme à baton.
J'ai réussi à récupérer la variable par l'intermédiare de l'url de type mapage.html?variable
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 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
Je n'arrive pas à intégrer la variable pour me donner la valeur Y de l'histogramme
Le script de l'histogramme que je détail pour simplifier
// 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(variable); --> c'est ici ca ne fonctionne pas
var variable=location.search.substring(1);
function AffHisto(tabx,taby,incX,Y,titre,dX,dY,decal) {
// 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*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==max)||(taby==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+" : "+(taby)+"')//
ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx+" : "+(taby)+"'>";
// affichage de la valeur en X (FONT size= taille de la police...)
ie+="<BR><FONT size='-2'><CENTER>"+tabx.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+" : "+(taby)+"'>";
ns+="<BR><FONT size='-2'><CENTER>"+tabx.substring(0,2)+"<BR>"+tabx.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);}
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);}
return min;
}
function MakeTab() {
this.length = MakeTab.arguments.length;
for (var i = 0; i < this.length; i++)
this = MakeTab.arguments;
}
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>
</BODY></HTML>
Fin du script
Merci de votre aide
Peo
Autres pages sur : recuperation variable javascript generer popup
Lassé par la pub ? Créez un compte
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
Je pense que le problème vient de la fonction MakeTab
Cette fonction demande la longeur de l'intérieur de MakeTab avec .length
A mon avis il faut refaire la fonction MakeTab
function MakeTab() {
this.length = MakeTab.arguments.length; --> Il calcul la longueur du mot variable et pas son contenu
for (var i = 0; i < this.length; i++)
this = MakeTab.arguments;
}
Il faudrait prendre le contenu d'une variable .
Y a t'il une fonction javascript pour récupérer le contenu d'une variable
Peut etre que c'est la solution
// 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
Je pense que le problème vient de la fonction MakeTab
Cette fonction demande la longeur de l'intérieur de MakeTab avec .length
A mon avis il faut refaire la fonction MakeTab
function MakeTab() {
this.length = MakeTab.arguments.length; --> Il calcul la longueur du mot variable et pas son contenu
for (var i = 0; i < this.length; i++)
this = MakeTab.arguments;
}
Il faudrait prendre le contenu d'une variable .
Y a t'il une fonction javascript pour récupérer le contenu d'une variable
Peut etre que c'est la solution
Le code suivant fonctionne pour créer un histogramme à baton:
<HTML><HEAD>
<TITLE>Histogramme à baton</TITLE>
<SCRIPT LANGUAGE="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 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*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==max)||(taby==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+" : "+(taby)+"')
ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx+" : "+(taby)+"'>";
// affichage de la valeur en X (FONT size= taille de la police...)
ie+="<BR><FONT size='-2'><CENTER>"+tabx.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+" : "+(taby)+"'>";
ns+="<BR><FONT size='-2'><CENTER>"+tabx.substring(0,2)+"<BR>"+tabx.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);}
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);}
return min;
}
function MakeTab() {
this.length = MakeTab.arguments.length;
for (var i = 0; i < this.length; i++)
this = MakeTab.arguments;
}
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>
</BODY></HTML>
Pour ceux qui ça intéresse, le script fonctionne il suffit de rajouter des images de couleur (format 1px suffit).
Moi ce qui m'intéresse c'est de modifier la hauteur des batons. Je souhaite supprimer les constantes par une variable.
Si quelqu'un a une idée
Peo
<HTML><HEAD>
<TITLE>Histogramme à baton</TITLE>
<SCRIPT LANGUAGE="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 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*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==max)||(taby==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+" : "+(taby)+"')
ie+="<img valign='bottom' border=0 src='"+nom+"' width="+tailleX+" height="+tailleY+" alt='"+tabx+" : "+(taby)+"'>";
// affichage de la valeur en X (FONT size= taille de la police...)
ie+="<BR><FONT size='-2'><CENTER>"+tabx.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+" : "+(taby)+"'>";
ns+="<BR><FONT size='-2'><CENTER>"+tabx.substring(0,2)+"<BR>"+tabx.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);}
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);}
return min;
}
function MakeTab() {
this.length = MakeTab.arguments.length;
for (var i = 0; i < this.length; i++)
this = MakeTab.arguments;
}
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>
</BODY></HTML>
Pour ceux qui ça intéresse, le script fonctionne il suffit de rajouter des images de couleur (format 1px suffit).
Moi ce qui m'intéresse c'est de modifier la hauteur des batons. Je souhaite supprimer les constantes par une variable.
Si quelqu'un a une idée
Peo
Etant nouveau sur le forum, je ne savait pas que ton premier message balise [code] était la signification de placer la balise code.
Je viens de lire le topics concernant les règles simples à respecter.
Pourquoi vous n'utiliser pas un texte clair dans les nouveaux sujets permettant d'insérer du code? Surtout dans un forum de programmation.
Et maintenant je cite vos propos Monsieur:
"et la balise [code] c'est pour les chiens ?" Ne me plait guère
Je pense tout de suite à un manque de respect envers une personne que vous ne connaissez pas.
Peofofo
Je viens de lire le topics concernant les règles simples à respecter.
Pourquoi vous n'utiliser pas un texte clair dans les nouveaux sujets permettant d'insérer du code? Surtout dans un forum de programmation.
Et maintenant je cite vos propos Monsieur:
"et la balise [code] c'est pour les chiens ?" Ne me plait guère
Je pense tout de suite à un manque de respect envers une personne que vous ne connaissez pas.
Peofofo
Le code suivant fonctionne pour créer un histogramme à baton:
<HTML><HEAD>
<TITLE>Histogramme à baton</TITLE>
<SCRIPT LANGUAGE="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 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>
</BODY></HTML>
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumRecuperation de variable javascript
- ForumVariable en javascript
- ForumMettre une variable javascript dans un cookie
- ForumCode source dans variable en javascript
- ForumRecuperer variable javascript dans php
- ForumPassage variable javascript html
- articlesAfficher variable javascript html
- ForumRecuperer une variable javascript avec ajax
- articlesTransfert variable javascript html
- ForumRecuperer le contenu d'une variable javascript
- Voir plus