peofofo
Nouveau membre
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. t1cable:
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. t1cable:
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