modifier legerement une fonction js

guy
Eléphant du PHP | 134 Messages

04 août 2005, 15:45

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

Mammouth du PHP | 543 Messages

04 août 2005, 15:49

Le alert() :)

guy
Eléphant du PHP | 134 Messages

04 août 2005, 15:57

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é)

Mammouth du PHP | 543 Messages

04 août 2005, 16:07

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;
@+

guy
Eléphant du PHP | 134 Messages

04 août 2005, 16:55

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

Mammouth du PHP | 543 Messages

04 août 2005, 17:04

Met le en input type="text" deja, ca sera plus facile pour moi ;)

Mammouth du PHP | 543 Messages

04 août 2005, 17:15

Deja j'ai vu une faute, c'est getElementById, et non getElementByID :)

C'est ma faute ;)

guy
Eléphant du PHP | 134 Messages

04 août 2005, 17:36

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

Mammouth du PHP | 543 Messages

04 août 2005, 18:46

J'ai tester en local chez moi, apres le clic sur coordonnées ca marche tout a fait.

Mammouth du PHP | 543 Messages

04 août 2005, 18:53

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";
@++