par
Ryle » 10 févr. 2015, 12:26
Les options d'un select sont constituées de deux éléments :
- la valeur (attribut value) qui est transmise par le navigateur lorsque le formulaire est soumit
- le libellé (placé entre les balises <option>) qui n'est pas transmit par le navigateur (*)
(*) en l'occurrence, certains navigateurs le transmettent en cas d'absence de l'attribut value, mais mieux vaut ne pas compter la dessus
Du coup, il y a plusieurs solutions possible. Tu peux, comme évoqué par Megadeth, récupérer l'id passé dans l'attribut value et l'utiliser pour retrouver le libellé associé (avec une requête SQL, une information en session, ...) ou tu peux concatener plusieurs informations dans l'attribut value, en utilisant un séparateur (point-virgule, pipe, ... ex : value="id|libelle|...")
Le premier cas est le plus simple et n'affecte pas ton traitement. Le second t'oblige alors à retravailler la valeur transmise par le formulaire pour dissocier chacune des informations soumises (avec explode() par exemple) et exploiter l'id d'un côté et le libellé de l'autre
Les options d'un select sont constituées de deux éléments :
- la valeur (attribut value) qui est transmise par le navigateur lorsque le formulaire est soumit
- le libellé (placé entre les balises <option>) qui n'est pas transmit par le navigateur (*)
[size=70](*) en l'occurrence, certains navigateurs le transmettent en cas d'absence de l'attribut value, mais mieux vaut ne pas compter la dessus :)[/size]
Du coup, il y a plusieurs solutions possible. Tu peux, comme évoqué par Megadeth, récupérer l'id passé dans l'attribut value et l'utiliser pour retrouver le libellé associé (avec une requête SQL, une information en session, ...) ou tu peux concatener plusieurs informations dans l'attribut value, en utilisant un séparateur (point-virgule, pipe, ... ex : value="id|libelle|...")
Le premier cas est le plus simple et n'affecte pas ton traitement. Le second t'oblige alors à retravailler la valeur transmise par le formulaire pour dissocier chacune des informations soumises (avec explode() par exemple) et exploiter l'id d'un côté et le libellé de l'autre