Page 1 sur 1

passage variable href

Posté : 02 oct. 2007, 10:39
par pierrot
Bonjour,
J'ai un formulaire à l'intérieur duquel j'ai plusieurs champs.
A la suite d'un champ, j'ai un lien href vers une autre page php. Ce que j'aimerai c faire passer dans ce popup la valeur d'un champ de ma page principale.

En gros, j'ai ça:
un champ text:
	<td colspan=2 STYLE="text-align:left"><input type="text" name="dep" id='dep' size="28"   tabindex="100" value="" onclick="javascript:this.value=''" onblur="passage_sessions('dep');">
puis mon lien href :
		<a href="villes/index3.php" title="accès à la liste des communes"  onclick="window.open(this.href,'communes','height=120 , width=555 , location=no , resizable=yes , scrollbars=yes, left=100');return false;"><img src='img/icone_aide.gif' border="0"></a>-->
ce que j'aimerai c pouvoir rajouter apres mon href un truc comme ca: href=.... .php?valeur=getelementbyid(dep).value

c possible ça?
Merci[/php]

Posté : 02 oct. 2007, 10:46
par Ryle
C'est possible, mais c'est du javascript :)

Lorsque tu ouvres ta popup tu lui spécies l'adresse de la page à ouvrir. Cette adresse c'est une chaine. Tu es donc libre d'y écrire ce que tu veux.

this.href : contient la valeur de l'attribut href de l'élément courant. Rien ne t'empêche d'y concaténer un '?' ainsi qu'un paramètre, un signe '=' et une valeur récupérée dans ton formulaire :

Code : Tout sélectionner

this.href + '?param=' + ...

Posté : 02 oct. 2007, 10:54
par AB
C'est avec javascript qu'on peut utiliser getElementById, c'est donc en javascript qu'il faudra passer tes variables. Tu peux le faire à la place de this.href

EDIT : Grillé par Ryle

Et en fait, c'est même mieux de concaténer suivant ses conseils.

Posté : 02 oct. 2007, 11:03
par pierrot
Merci, mais je suis pas sûr de bien comprendre. Dans mon cas ca donnerait ça?
<a href="villes/index3.php" title="accès à la liste des communes"  onclick="window.open(this.href?valeur=getelementbyid(dep).value,........
Et dans ce cas, je recupere comment ma valeur dans index3.php?
$toto=$_GET['dep']
?

Posté : 02 oct. 2007, 11:33
par Berzemus
$toto=$_GET['valeur']
puisque le nom de la variable, dans le lien, est 'valeur'.

mais je doutes fort que ta requête fonctionne comme il est la..

tu pourrais plutôt écrire une fonction, appelée par le lien, pour construire la requête.

Posté : 02 oct. 2007, 11:40
par pierrot
oui autant pour moi pour 'valeur'
Avant de me lancer pour faire la fonction, est-ce que qq'un pourrait me dire ce qui ne vas pas là dedans:
window.open(this.href?valeur=document.getelementbyid(dep).value,...........
Merci

Posté : 02 oct. 2007, 12:01
par Ryle
"this.href" et "document.getelementbyid(dep).value" sont des instructions javascript. En revanche "?valeur=" est une chaine de caractères, tu ne peux donc pas tout mettre à la suite sans te soucier de rien, il faut concaténer. En php on utilise un point (.) en javascript c'est un plus (+), cf. mon message précédent :)

Par ailleurs, la fonction getElementById() attend une chaine en paramètre. Alors à moins que dep soit une variable js contenant l'id de ton champ, il te faut le délimiter avec des apostrophes (puisque ton attribut onClick est délimité par des guillemets)

Et tu récupèreras effectivement le paramètre en get avec php :)

Posté : 02 oct. 2007, 12:17
par pierrot
Dakodak, c'est bien compris et ca marche maintenant.
Merci à vous 3 pour vos réponses (avec une mention spéciale à Ryle :pouce: )
Je mets un ptit résolu et je vous souhaite une bonne journée