PHP html optgroup dans un select et récupération des valeurs en php à la validat

amewole Messages postés 108 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 28 février 2013 - 27 févr. 2013 à 18:34
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 - 28 févr. 2013 à 10:28
Je souhaite récupérer en PHP à la validation de mon formulaire les valeurs des options
OPTGROUP et options.
Voici le formulaire simplifié :
Quand je sélectionnne Peugeot je veux avoir les valeurs de OPTGROUP qui est 2500 et celle de l'option qui 3.
Je pense que la valeur de l'option doit être égale à $categorie = $_POST['categorie'];
et la valeur de OPTGROUP ??? comment l'obtenir ?

<FORM name="myform" action="mytest.php" method="POST">

<SELECT name=categorie" id="categorie" >
<OPTGROUP label="2500">
<option value="2"> Renault </option>
<option value="3"> Peugeot </option>
<option value="4"> Citroen </option>
</OPTGROUP>

<OPTGROUP label="3200">
<option value= "9"> Mercedes </option>
<option value= "11"> Audi </option>
<option value= "18"> BMW </option>
</OPTGROUP>
</SELECT >





</FORM>

Merci à vous tous pour votre aide.

4 réponses

cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
28 févr. 2013 à 09:00
Salut, il est impossible via la variable $_GET ou $_POST de récupérer un libellé.
Mais bien sûr, il y a une solution.
Avec de la créativité, on peut faire beaucoup.

Il est possible avec la fonction explode() de PHP de créer un tableau avec une chaine de caractères reçu.
Tu modifies les valeurs des options de tes listes comme ceci.
<form name="myform" action="mytest.php" method="post">
    <select name=categorie" id="categorie">
        <optgroup label="2500">
            <option value="2500-2">Renault</option>
            <option value="2500-3">Peugeot</option>
            <option value="2500-4">Citroen</option>
        </optgroup>
        <optgroup label="3200">
            <option value= "3200-9">Mercedes</option>
            <option value= "3200-11">Audi</option>
            <option value= "3200-18">BMW</option>
        </optgroup>
    </select>

    
</form>


En PHP coté serveur, tu récupères la valeur du select (donc, la valeur de Peugeot pour le test).
<?php
$a_categorie = explode('-', $_POST['categorie']);
echo $a_categorie[0]; // affiche 2500
echo $a_categorie[1]; // affiche 3


stéph
0
amewole Messages postés 108 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 28 février 2013
28 févr. 2013 à 09:04
Merci steph,

Je vais tester cette solution et je t'en dirai plus.
Cordialement.
0
amewole Messages postés 108 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 28 février 2013
28 févr. 2013 à 10:26
Steph,

ça marche très bien ta solution ce qui m'évite de passer par javascript !!

Cordialement.
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
28 févr. 2013 à 10:28
Super a+

stéph
0
Rejoignez-nous