passage variable href

Eléphant du PHP | 223 Messages

02 oct. 2007, 10:39

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]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 oct. 2007, 10:46

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=' + ...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
AB
ViPHP | 5818 Messages

02 oct. 2007, 10:54

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.

Eléphant du PHP | 223 Messages

02 oct. 2007, 11:03

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']
?

ViPHP
ViPHP | 4039 Messages

02 oct. 2007, 11:33

$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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 223 Messages

02 oct. 2007, 11:40

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 oct. 2007, 12:01

"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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 223 Messages

02 oct. 2007, 12:17

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