Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: timogaby27 le le 20-09-2012 a 12:39:58

Titre: Formulaire à choix multiples
Posté par: timogaby27 le le 20-09-2012 a 12:39:58

Bonjour à tous,

J'ai actuellement un formulaire de contact qui fonctionne très bien, mais j'aimerais y insérer des choix multiples, j'y suis arrivé. Par contre lorsqu'on me fais une demande par ce formulaire avec plusieurs choix, je reçois qu'un choix, alors que l'internaute en a coché plusieurs. Je compte sur vous pour m'orienter. Merci beaucoup;

Voici mon code html:

<form action="formmail.php" method="post" id="formmail">
<input type=hidden name=subject value=formmail>
<p><input type="text" name="nom" id="nom" /><label for="nom" class="nom">Nom</label></p>

<p><input type="text" name="prenom" id="prenom" /><label for="prenom" class="prenom">Prénom</label></p>

<p><input type="text" name="adresse" id="adresse" /><label for="adresse" class="adresse">Adresse</label></p>

<p><input type="text" name="code_postal" id="code_postal" /><label for="code_postal" class="code_postal">Code Postal</label></p>

<p><input type="text" name="ville" id="ville" /><label for="ville" class="ville">Ville</label></p>

<p><input type="text" name="telephone" id="telephone" /><label for="telephone" class="telephone">Téléphone</label></p>

<p><input type="text" name="email" id="email" /><label for="email" class="email">E-mail</label></p>

<label for="selection" class="selection">Votre demande concerne :<br><p>Plusieurs choix possibles (Ctrl)</p></label>
<select name="Nom_de_la_selection" size="2" multiple="mulitple" class="choix">

<option value="Le pack vitrine">Le pack vitrine</option>
<option value="Le pack vitrine CMS" selected="selected">Le pack vitrine CMS</option>
<option value="Le pack catalogue">Le pack catalogue</option>
<option value="Le pack catalogue CMS">Le pack catalogue CMS</option>
<option value="Le pack E-commerce">Le pack E-commerce</option>
<option value="Un site E-commerce CMS">Le pack E-commerce CMS</option>
<option value="Une traduction">Une traduction</option>
<option value="Un service de prospection">Un service de prospection</option>
<option value="Le dépannage Android">Le dépannage Android</option>
</select>

<label for="message" class="message">Message :</label>
<textarea name="message" id="message"></textarea>


<input type="submit" name="submit" value="Envoyer" onClick="javascript: return verif();">

</form>



et mon code php (formail):

<?php
$TO = "timogaby@hotmail.com";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://www.tservices.fr/message.php");

?>


Merci pour vos éclairicessements!



Titre: Re:Formulaire à choix multiples
Posté par: raptou le le 21-09-2012 a 09:01:31

Bonjour

2 choses manquent

tu dois ajouter dans le formulaire sur le nom de ton select le fait que c'est un tableau
donc <select name="mon_select[]">

Pour recuperer les valeurs coté PHP tu dois examiner le tableau ainsi
            $Col1_Array = $_POST['mon_select'];
               foreach($Col1_Array as $selectValue)
               {
               echo "<br> Choix du select est :".$selectValue;
               }

Titre: Re:Formulaire à choix multiples
Posté par: timogaby27 le le 21-09-2012 a 09:07:18

Merci beaucoup pour ta réponse, le code PHP que tu m'as donné je l'intègre directement dans mon PHP existant? dois-je enlever la ligne:

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

Pour remplacer avec ce que tu m'as donné?

dsl je ne suis pas très calé en PHP.


Titre: Re:Formulaire à choix multiples
Posté par: raptou le le 21-09-2012 a 09:15:29

Tu peux mettre cela apres ton code, en fait ce bout de code ne va t'afficher que les valeurs effectivement selectionnées dans ton select multiple
C'est donc juste un exmple de comment récuperer ces valeurs

Titre: Re:Formulaire à choix multiples
Posté par: timogaby27 le le 21-09-2012 a 09:23:58

J'ai mis cela :

<label for="selection" class="selection">Votre demande concerne :<br></label>
<select name="mon_select[]" size="1" multiple="MULTIPLE" class="choix">

<option value="Le pack vitrine" selected="selected">Le pack vitrine</option>
<option value="Le pack vitrine CMS">Le pack vitrine CMS</option>
<option value="Le pack catalogue">Le pack catalogue</option>
<option value="Le pack catalogue CMS">Le pack catalogue CMS</option>
<option value="Le pack E-commerce">Le pack E-commerce</option>
<option value="Un site E-commerce CMS">Le pack E-commerce CMS</option>
<option value="Une traduction">Une traduction</option>
<option value="Un service de prospection">Un service de prospection</option>
<option value="Le dépannage Android">Le dépannage Android</option>
</select>

<label for="message" class="message">Message :</label>
<textarea name="message" id="message"></textarea>


<input type="submit" name="submit" value="Envoyer" onClick="javascript: return verif();">

</form>

Formail =

<?php
$TO = "timogaby@hotmail.com";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

$Col1_Array = $_POST['mon_select'];
foreach($Col1_Array as $selectValue)
{
echo "<br> Choix du select est :".$selectValue;
}

mail($TO, $subject, $message, $h);

Header("Location: http://www.tservices.fr/message.php");

?>

Je reçois cela comme réponse :

subject : formmail
nom : POLFLIET
prenom : Timothée
adresse : 45 boulevard Gambetta
code_postal : 59200
ville : Tourcoing
telephone : 0630788643
email : timopolfliet@gmail.com
mon_select : Array
message : $Col1_Array = $_POST[\'mon_select\'];
foreach($Col1_Array as $selectValue)
{
echo \"<br> Choix du select est :\".$selectValue;
}
submit : Envoyer

et ce message quand j'envoie ma demande depuis le site :

Choix du select est :Le pack vitrine
Choix du select est :Le pack catalogue
Warning: Cannot modify header information - headers already sent by (output started at /homez.502/tservice/www/formmail.php:15) in /homez.502/tservice/www/formmail.php on line 20

J'ai du mal faire qqch..

Titre: Re:Formulaire à choix multiples
Posté par: raptou le le 21-09-2012 a 09:44:18

Je pense qu'il faudrait que tu te plonges un peu dans les docs PHP dispo sur le web

C'est un passage obligatoire

LA ton soucis vient du fait que tu fais des echo de tes variables et qu'ensuite tu tentes
un header ( location)

Si tu cherches des docs via google la dessus, tu verrais qu'un header location ne fonctionnera que si et uniquement si aucune instruction d'affichage n'est rencontrée avant

Titre: Re:Formulaire à choix multiples
Posté par: timogaby27 le le 21-09-2012 a 09:48:45

Ok en gros,

Si j'enlève mon header location, les choix multiples pourront être envoyées sur mon adresse mail, mais je n'aurais pas de redirection vers ma page de message qui dit que le message a bien été envoyé.

Sinon, je remet comme avant, avec un menu et une seule option possible et les gens spécifieront dans le message qu'ils veulent plusieurs choix. Et dans ce cas j'ai ma redirection pour que les utilisateurs sachent que leur message a été envoyé.

C'est bien cela?


Titre: Re:Formulaire à choix multiples
Posté par: raptou le le 21-09-2012 a 09:54:51

non, remplace tout simplement le
echo "<br> Choix du select est :".$selectValue;

par un $message .= "<br> Choix du select est :".$selectValue;


Titre: Re:Formulaire à choix multiples
Posté par: timogaby27 le le 21-09-2012 a 10:00:17

C'est PARFAIT Raptou !! Je te remercie

A présent j'ai bien ma redirection qui s'affiche je peux choisir plusieurs options et en plus dans mon email je vois bien les options choisies par l'internaute

exemple :

subject : formmail
nom : POLFLIET
prenom : Timothée
adresse : 45 boulevard Gambetta
code_postal : 59200
ville : Tourcoing
telephone : 0630788643
email : timopolfliet@gmail.com
mon_select : Array
message : Bonjour Monsieur dames
submit : Envoyer
<br> Choix du select est :Le pack vitrine<br> Choix du select est :Le pack vitrine CMS<br> Choix du select est :Le pack catalogue

Merci beaucoup ! Je sais qu'il faut que je me mettre au PHP sérieusement et je le ferais promis! c'est la première fois que je demande quelque chose sur un forum car je trouve toujours la réponse tout seul normalement, mais là je bloquais..

Me voilà ravi..

On peut donc clore ce topic !
Merci

Titre: Re:Formulaire à choix multiples
Posté par: raptou le le 21-09-2012 a 10:33:11

bonne continuation

Titre: Re:Formulaire à choix multiples
Posté par: timogaby27 le le 21-09-2012 a 10:44:42

Merci à toi aussi !!

Je ne vois pas comment fermer ce topic, ou le mettre comme "résolu" tu sais ou ca se passe?

Titre: Re:Formulaire à choix multiples
Posté par: raptou le le 21-09-2012 a 10:56:13

non désolé


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.