Formulaire et envoi de mail

Invité
Invité n'ayant pas de compte PHPfrance

05 août 2011, 13:57

Bonjour à tous, voici mon problème :

Je créé un formulaire banal, dans lequel se trouve ce champs (liste déroulante contenant seulement 2 possibilités de choix) :
<tr>
     <td align="right">Vous souhaitez être re-contacté par : </td>
     <td>
          <select name="pref-contact" class="select" style="width:100px;">
               <option value="">Téléphone</option>
               <option value="">Email</option>
          </select>
     </td>
</tr>
Lorsque l'internaute valide le formulaire, bien entendu celui-ci m'est envoyé par mail en récupérant les données. J'arrive à récupérer les données de tous les champs, sauf pour le champs <select> déclaré ci-dessus (les autres sont des champs input classiques). Voila comment je procède :
<?
if(isset($_POST["ok"]) && $_POST["ok"] == 1){
		if(envoi_mail($mail_site, "Message depuis  ".$url_site2, "Vous avez re&ccedil;u un message depuis  ".$url_site2."<br><br>
		
Identifiant : ".htmlentities($_POST["ref"])."<br>
Nom : ".htmlentities($_POST["nom"])."<br>
Pr&eacute;nom : ".htmlentities($_POST["prenom"])."<br>
Téléphone : ".htmlentities($_POST["tel"])."<br>
Mail : <a href='mailto:".htmlentities($_POST["mail"])."'>".htmlentities($_POST["mail"])."</a><br><br>
Préférence de contact : ".htmlentities($_POST["pref-contact"])."<br>
Tout marche, sauf pour récupérer la valeur contenu dans ma liste déroulante à 2 choix (pref-contact). Dans le mail que je reçois en testant le formulaire, la valeur "e-mail" ou "téléphone" que l'internaute aura sélectionné n'apparait pas.

Peut être que htmlentities($_POST["pref-contact"]) ne peut pas être utilisé pour un <select> ?

Merci par avance pour vos pistes.

Romain.

ViPHP
ViPHP | 2577 Messages

05 août 2011, 14:12

Bonjour,

Le problème, c'est le value="" pour les 2 options.
Soit tu mets une valeur, soit tu ne mets pas d'attribut value

Edit, si pas de value, le libellé de l'option est retourné.

Invité
Invité n'ayant pas de compte PHPfrance

05 août 2011, 14:31

D'accord merci. Je tente en enlevant les value (ou en mettant le libellé de l'option en value, j'imagine que ça aura le même effet ?

Invité
Invité n'ayant pas de compte PHPfrance

05 août 2011, 15:19

Ca marche merci beaucoup !

Mais alors à quoi sert l'attribut "value" si faut y mettre la même chose que dans l'intitulé de l'option ?

ViPHP
ViPHP | 2577 Messages

05 août 2011, 16:25

En général, on mais un code dans "value" et le libellé pour l'option. Cela peut permettre une traduction du libellé sans changer le PHP qui traite toujours les mêmes valeurs.

Si les 2 sont identiques, on s'abstient de l'attribut value et surtout on ne met pas value="" qui retourne "".