Page 1 sur 1

modifier legerement une fonction js

Posté : 04 août 2005, 15:45
par guy
la fonction qui suit me donne son resultat par une boite de dialogue (alert) avec un declanchement sur un onclick je voudrait quelle ecrive le resultat directement sur la page que dois je modifier ?
function getZone( img, mask )
{
	
	var src = document.images[img];
	var target = document.getElementById(mask);
	
	/* Ne pas oublier ici que le 560 est la valeur de la hauteur de l'image */
	/* donc ont doit la modifier selon la hauteur si l'image change */
	
	var hauteur = (document.getElementById(mask).offsetHeight);
	var largeur = (document.getElementById(mask).offsetWidth);
	var x1 = (GetRealOffsetLeft(target)-GetRealOffsetLeft(src));
	var x2 = (x1 + largeur); 
	var y2 = (560 - (GetRealOffsetTop(target)-GetRealOffsetTop(src)));
	var y1 = (y2 - hauteur);
	
	var str = "X1 = "+ x1;
	str += "\nX2 = "+ x2;
	str += "\nY1 = "+ y1;
	str += "\nY2 = "+ y2;
	str += "\n";
	
	str += "\n(X1,Y1) = ("+ x1;
	str += ","+ y1;
	str += ")";
	
	str += "\n(X2,Y1) = ("+ x2;
	str += ","+ y1;
	str += ")";
	
	str += "\n(X1,Y2) = ("+ x1;
	str += ","+ y2;
	str += ")";
	
	str += "\n(X2,Y2) = ("+ x2;
	str += ","+ y2;
	str += ")";
	
	str += "\n";
	str += "\nHauteur = "+ (document.getElementById(mask).offsetHeight);
	str += "\nLargeur = "+ (document.getElementById(mask).offsetWidth);
	alert(str);
}
merci
Guy

Posté : 04 août 2005, 15:49
par raptor
Le alert() :)

Posté : 04 août 2005, 15:57
par guy
ca j'avais cru comprendre mais que dois je mettre à la place de alert(str) pour qu'il ecrive sur la page et comment dois je faire pour qu'il mette la valeur retourner par str dans un champ caché de formulaire en php ?
Merci
Guy (qui est null en JS mais tout le monde l'avait remarqué)

Posté : 04 août 2005, 16:07
par raptor
tu fais un <input type="hidden" id="blabla" name="blabla" />


et dans la fonction tu remplace le alert par :

Code : Tout sélectionner

document.getElementByID('blabla').value = str;
@+

Posté : 04 août 2005, 16:55
par guy
j'ai quelques problemes: pas d'erreur JS mais la valeur n'est pas passée par le script
Tu peut voir le resultat ici http://guylinux.no-ip.com/~guy/rect/
(et eventuellement voir la source)
la page qui suit le submit contient:
foreach ($_POST as $value) {
       print "$value <br>";
     }
qui devrait me permetre de voir le resultat du formulaire mais cela reste desesperement vide
Merci de votre aide
Guy

Posté : 04 août 2005, 17:04
par raptor
Met le en input type="text" deja, ca sera plus facile pour moi ;)

Posté : 04 août 2005, 17:15
par raptor
Deja j'ai vu une faute, c'est getElementById, et non getElementByID :)

C'est ma faute ;)

Posté : 04 août 2005, 17:36
par guy
j'ai fait la modif et mis le champs en text mais ca ne fonctionne toujours pas :(
Désolé de te casser la tete .
Guy
en fait si ca marche mais uniquement si on clique sur coordonnées serait il possible que se soit automatique des que le cadre est dessiné sur l'image ?
Guy

Posté : 04 août 2005, 18:46
par raptor
J'ai tester en local chez moi, apres le clic sur coordonnées ca marche tout a fait.

Posté : 04 août 2005, 18:53
par raptor
Pour voir les modifs en live, essaye de rajouter ca :

Code : Tout sélectionner

var hauteur = (document.getElementById(mask).offsetHeight); var largeur = (document.getElementById(mask).offsetWidth); var x1 = (GetRealOffsetLeft(target)-GetRealOffsetLeft(src)); var x2 = (x1 + largeur); var y2 = (560 - (GetRealOffsetTop(target)-GetRealOffsetTop(src))); var y1 = (y2 - hauteur); var str = "X1 = "+ x1; str += "\nX2 = "+ x2; str += "\nY1 = "+ y1; str += "\nY2 = "+ y2; str += "\n"; str += "\n(X1,Y1) = ("+ x1; str += ","+ y1; str += ")"; str += "\n(X2,Y1) = ("+ x2; str += ","+ y1; str += ")"; str += "\n(X1,Y2) = ("+ x1; str += ","+ y2; str += ")"; str += "\n(X2,Y2) = ("+ x2; str += ","+ y2; str += ")"; str += "\n"; str += "\nHauteur = "+ largeur; str += "\nLargeur = "+ hauteur; document.getElementById('blabla').value = str;
apres les lignes :

Code : Tout sélectionner

// placement du calque document.getElementById("mask").style.top = newY+"px"; document.getElementById("mask").style.left = newX+"px"; document.getElementById("mask").style.width = "0px"; document.getElementById("mask").style.height = "0px";
@++