Page 1 sur 1

Problème champ select, onchange et variable PHP

Posté : 25 janv. 2008, 12:56
par supercanard
Bonjour,

j'ai un petit soucis avec cette ligne :
echo '<span class="element"><select name="position" title="Position du lien dans le menu" onchange="location.href=\'req.php?req=modif_position&position=this.options[this.selectedIndex].value&id='.$data_pages['id'].'\' " >'; 
L'idée est de passer la valeur de l'option du champ select sélectionné dans une variable.
Quand le code s'exécute au lieu de me passer la valeur de la variable dans l'url il me fait :

req.php?req=modif_position&position=this.options[this.selectedIndex].value&id=22

Comme je suis pas doué en Javascript et débutant/moyen en PHP je nage un peu là... :cry:

Re: Problème champ select, onchange et variable PHP

Posté : 25 janv. 2008, 13:09
par Calimero
Javascript n'évalue pas automatiquement les variables et/ou fonctions contenues dans les chaînes (qu'elles soient délimités par des apostrophes ou des guillemets), contrairement à PHP (dans le cas des chaînes délimitées par des guillemets). Il faut donc sortir ta variable de la chaîne, et assembler le tout manuellement (ce que tu dois déjà faire en PHP si tu suis les bonnes pratiques ;-) )

Bon, là c'est en effet un peu ardu, car tu es dans le cas particulier d'un évènement JS qui est écrit dans la valeur de l'attribut de balise HTML lui-même écrit dans une chaîne PHP. Il faut donc jongler avec les \... |*() .
echo '<span class="element"><select name="position" title="Position du lien dans le menu" onchange="location.href=\'req.php?req=modif_position&position=\'+this.options[this.selectedIndex].value+\'&id='.$data_pages['id'].'\' " >'; 

Posté : 25 janv. 2008, 16:02
par supercanard
Merci de ta réponse, ça marche :wink:
je crois que j'ai compris, mais comme sur le net on trouve un tas d'exemple avec aussi un tas d'erreurs j'ai l'impression... dur de faire le tri dans ce qu'on trouve.

Posté : 25 janv. 2008, 17:55
par ouckileou
Modération :
supercanard, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.