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

Signaler
Messages postés
108
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
28 février 2013
-
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
-
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

Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
3
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
Messages postés
108
Date d'inscription
jeudi 23 mars 2006
Statut
Membre
Dernière intervention
28 février 2013

Merci steph,

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

Steph,

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

Cordialement.
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
3
Super a+

stéph