Récupérer valeur liste déroulante

Invité
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 14:50

Bonjour


J'ai créé un formulaire avec une liste déroulante qui affiche les données qui se trouve dans une table
La base se nomme formulaire et la table demande
Dans ma table j'ai créé un champ id=responsable et un champ responsable

Ensuite j'envoie les données de mon formulaire via mail

Le problème c'est que je ne sais pas comment recupérer les données de ma liste déroulante pour ensuite l'envoyer par mail

Voici la partie de mon code formulaire contenant la liste déroulante:

Code : Tout sélectionner

<body> <form id="responsable"> Responsable : <select id="liste_resp"> <option value=""></option> </form> </body> <?php $sql="SELECT id_responsable, responsable FROM demande ORDER BY responsable ASC"; $req=mysql_query($sql) or die(mysql_error()); while($resp = mysql_fetch_array($req)) { echo '<option value="'.$resp['id_responsable'].'">' . $resp['responsable'] . '</option>'; } ?> </select><br />
Voici maintenant mon code qui envoie les données du formulaire par mail:

Code : Tout sélectionner

<?php $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>"; $msg_ok = "Votre demande a bien été prise en compte."; $message = $msg_erreur; // vérification des champs if (empty($_POST['nom'])) $message .= "Nom<br/>"; if (empty($_POST['prenom'])) $message .= "Prénom<br/>"; if (empty($_POST['service'])) $message .= "Service<br/>"; if (empty($_POST['profildereference'])) $message .= "Profil de référence<br/>"; if (empty($_POST['date'])) $message .= "Date<br/>"; // si un champ est vide, on affiche le message d'erreur if (strlen($message) > strlen($msg_erreur)) { echo $message; ?> <FORM> <INPUT TYPE="BUTTON" VALUE=" Retour " onClick="history.back()"> </FORM> <?php // sinon c'est ok } else { foreach($_POST as $index => $valeur) { $$index = mysql_real_escape_string(trim($valeur)); } $TO = "[email protected]"; $header = "From: [email protected]\n"; $subject = "Demande d'entrée: " .$_POST['date']; $message = "NOM : ".$_POST['nom']."\n"; $message .= "PRENOM : ".$_POST['prenom']."\n"; $message .= "SERVICE : ".$_POST['service']." - RESPONSABLE :".$_POST['responsable']."\n"; $message .= "PROFIL DE REFERENCE : ".$_POST['profildereference']."\n"; $message .= "ACCES MESSAGERIE : ".$_POST['accesmessagerie']."\n"; $message .= "PC SUPPLEMENTAIRE : ".$_POST['pcsupplementaire']."\n"; $message .= "TELEPHONE SUPPLEMENTAIRE : ".$_POST['telsupplementaire']."\n"; $message .= "Remarque : \n".$_POST['remarque']."\n"; $message .= "Demandeur : ".$_POST['demandeur']; if (mail($TO, $subject, $message, $header)) { Header("Location: http://172.18.4.41/ok.htm"); } } ?>
Le problème c'est que je n'arrive pas à récupérer la valeur responsable

Pouvez vous m'aider ?

D'avance merci

Mammouth du PHP | 1353 Messages

20 mai 2008, 15:50

Bonjour,

Il faut que tu ajoutes une méthode,une action et un bouton submit à ton formulaire dans un premier temps :

Code : Tout sélectionner

<form id="responsable" method="POST" action="ma_page.php"> Responsable : <select id="liste_resp" name="list_resp"> <option value=""></option> <input type=submit/> </form>
Ainsi si tu fais ca, le fait de cliquer aura pour effet de t'envoyer vers la page "ma_page.php" qui pourra traiter les données du formulaire et les envoyer par mail avec le reste.

Dans la page ma_page.php (qui peut etre la meme page), tu pourras récupérer la valeur
$_POST["list_resp"];
qui contiendra la valeur selectionnée.

Regarde les tutoriaux php france et surtout celui la pour des exemples plus précis.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Invité
Invité n'ayant pas de compte PHPfrance

20 mai 2008, 16:06

Ok ça marche sauf que je reçis le numero qui correspond au responsable alors que je souhaite recevoir uniquement le nom

Peux tu m'aider ?

MErci

Mammouth du PHP | 1353 Messages

20 mai 2008, 16:28

C'est normal :

quand tu écris ton select tu écris :
echo '<option value="'.$resp['id_responsable'].'">' . $resp['responsable'] . '</option>';
Et la valeur envoyée est la valeur qui correspond à "value". Ainsi tu envoies ici id_responsable... si tu veux autre chose met autre chose dans la value='' ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Invité
Invité n'ayant pas de compte PHPfrance

21 mai 2008, 08:20

J'ai modifié, super ça marche

Une dernière question, quand je reçois le mail avac les valeurs saisies dans le formulaire, je l'ai recoois mais sur 2 ligne avec les valeurs à la suite des autres
J'aimerais si possible que chaque valeur soir sur une ligne uniquement

Pouvez vous m'aider

D'avance merci

Petit nouveau ! | 1 Messages

21 mai 2008, 10:57

tu veux les mettre dans un tableau???
ou juste les mettre chacun a une ligne.

modifie ton code avec <br/> ou utilise <p>....</p>

sois plus explicite la prochaine fois