Choix de contact dans formulaire

jeremyyyyy Messages postés 32 Statut Membre -  
 Profil bloqué -
Bonjour,

Voila mon souci, après avoir pas mal chercher sur le net, je n'ai pas trouvé la réponse que je cherchais.
Je souhaiterai faire un formulaire en html (jusqu'ici tout va bien!) où l'utilisateur puisse choisir le destinataire parmi 4 choix (cases à cocher) avec la possibilité d'envoyer à 1 seul destinataire ou les 4 en même temps (voila le problème).

Merci de votre aide.

12 réponses

arthezius Messages postés 3756 Statut Membre 475
 
Pas très cohérent selon moi ce que tu lui fais faire Veraldi Q...

Déjà tu peux regarder entre autre cette page: https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettez-des-donnees-avec-les-formulaires
Tu pourras ainsi mieux comprendre les bases du traitement de formulaire en PHP.

Je reprends mon exemple.
<form method="post" action="traitement.php">  
<p>Destinataire:</p>  
<p><input type="checkbox" name="personne1" /> Personne 1</p>  
<p><input type="checkbox" name="personne2" /> Personne 2</p>  
<p><input type="checkbox" name="personne3" /> Personne 3</p>  
<p><input type="checkbox" name="personne4" /> Personne 4</p>  
<p><input type="submit" name="envoi" value="Envoyer"  /></p>  
</form>

(Je me suis planté dans mon précédent message. C'était name="" et non value="")

Explication:
<form method="post" action="traitement.php">

<form> est la balise qui délimite le formulaire.
action="traitement.php"

traitement.php est dans mon exemple la page qui va contenir la script PHP du traitement du formulaire. Dans mon exemple est donc dans un deuxième fichier.
Tu peux très bien l'inclure dans le fichier qui contient le formulaire.

Côté traitement
<?php  
if(isset($_POST['personne1']))  
{  
// Traitement...  
}  
if(isset($_POST['personne2']))  
{  
// Traitement...  
}  
// Etc...  
?>

if(isset($_POST['personne1']))

if(): tu peux le traduire par un "si"
isset(): vérifie avec l'ajout du if() si ta variable est défini.
$_POST['personne1']: variable qui récupère la valeur du champ du formulaire <input />.
Dans le cas présent, il récupère la valeur de la balise html:
<input type="checkbox" name="personne1" />

La valeur $_POST[] prends la valeur d'une balise input en fonction de l'attribue name="" de celle-ci.
Autrement dit:
$_POST['personne1'] prends la valeur de la balise
<input type="checkbox" name="personne1" />


Checkbox
Une balise de type checkbox prends deux valeurs.
Si la case est coché la variable $_POST[''] est défini.
Dans le cas contraire elle n'est pas défini.
Autrement dit:
if(isset($_POST['personne1']))  
{  
// Traitement si la variable est défini, donc si la case est coché  
}

La condition if() vérifie que la case correspondante est bien coché et execute le script contenu entre { et }.

Dans le cas présent, tu veux envoyer un mail.
Il te faudra utiliser la fonction mail() de PHP.

Je te conseil déjà de bien analysé et comprendre tout ce que je viens d'expliquer.
Tu as tout sur ces deux pages qui sont très bien faite:
https://openclassrooms.com/fr/courses/1603881-apprenez-a-creer-votre-site-web-avec-html5-et-css3
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettez-des-donnees-avec-les-formulaires

Pour l'envoi de mail en PHP:
https://www.vulgarisation-informatique.com/mail.php

J'espère avoir été clair dans mes explications.
En cas de besoin, hésite à me demander des précisions.
« La recherche commence là où s'arrête la connaissance. »
1
Profil bloqué
 
Bonjour,

Est-ce que tu sais te servir de php ?

Si oui, il faut que tu mettes une condition dans ton form, et que le destinataire tu le mettes dans une variable, que tu mettras dans "action=...".

En gros
0
jeremyyyyy Messages postés 32 Statut Membre 1
 
Je ne métrise pas trop le php, aurais-tu un exemple par hasard ?
0
Profil bloqué
 
genre <form method=".." action="<?php echo $destinataire ?>">

Ca mettrai dans action la valeur de la variable $destinataire
Et il te faudrai mettre dans celle-ci ce que tu souhaites, exemple
<? php $destinataire="mavaleurdedestinataire" ?>

Dans cet exemple, action renverrait à la page contenue dans $destinataire,
Après tu adaptes, bien entendu, ce qui t'intéresse n'est pas forcément de le mettre dans action, tu peux le mettre partout.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeremyyyyy Messages postés 32 Statut Membre 1
 
Qlqe chose dans ce style ?

<form method="post" action="<?php echo $destinataire ?>">
<tr>
<td class="normal">Service à contacter</td>
</tr>
<tr>
<td width="300" height="24">
<select name="Destinataire" id="Destinataire">
<option value="adresse1@mail.fr">Service 1</option>
<option value="adresse2@mail.fr">Service 2</option>
<option value="adresse3@mail.fr">Service 3</option>
<option value="adresse4@mail.fr">Service 4</option>
</select>
</td>
</tr>
<? php $destinataire="Destinataire" ?>
<tr>
<td class="texte">Votre Nom</td>
</tr>
<tr>
<td width="300" height="24"><input name="Nom" size="26"></td>
</tr>
...
...
...
<tr>
<td class="texte">Votre Message</td>
</tr>
<tr>
<td width="100%"><textarea wrap=virtual rows=2 cols=26 name="Message" size="26"></textarea>
<br><br>
<input name="submit" type="submit" value="Envoyer" />
</td>
</tr>
</form>
0
Profil bloqué
 
Je pense qu'il faudrait plutôt te mettre dans la page qui reçoit tes données.

Ensuite tu fais un test sur les valeurs des checkbox envoyées, en php, pour récupérer tes adresses mail, genre

<?php
if (isset($_POST['Tontruc']))
{
if ($_POST['Tontruc']=="adressemail1")
{
$destinataire="adressemail1";
}
if ($_POST['Tontruc']=="adressemail2")
{
$destinataire="adressemail2";
}
if ($_POST['Tontruc']=="adressemail3")
{
$destinataire="adressemail3";
}
if ($_POST['Tontruc']=="adressemail4")
{
$destinataire="adressemail4";
}
}
?>

C'est un exemple. Après, il faut que tu mettes tes bonnes conditions dans if, et les bonnes instructions dans $destinataire.

Après tu peux utiliser ta variable $destinataire pour faire ce que tu veux...
0
arthezius Messages postés 3756 Statut Membre 475
 
Si tu veux avoir la possibilité d'en choisir soit un, soit deux ou même les quatres, il te faut utiliser des checkbox.

Côté formulaire:
<form method="post" action="traitement.php">
<p>Destinataire:</p>
<p><input type="checkbox" value="personne1" /> Personne 1</p>
<p><input type="checkbox" value="personne2" /> Personne 2</p>
<p><input type="checkbox" value="personne3" /> Personne 3</p>
<p><input type="checkbox" value="personne4" /> Personne 4</p>
<p><input type="submit" name="envoi" value="Envoyer"  /></p>
</form>


Côté traitement:
<?php
if(isset($_POST['personne1']))
{
// Traitement...
}
if(isset($_POST['personne2']))
{
// Traitement...
}
// Etc...
?>


Voir cette page pour les formulaire: https://openclassrooms.com/fr/courses/1603881-apprenez-a-creer-votre-site-web-avec-html5-et-css3
0
jeremyyyyy Messages postés 32 Statut Membre 1
 
Désolé j'insister mais je suis vraiment mauvais en php et je ne vois pas comment programmer mon fichier "traitement.php".... :(
et comment lier mon bouton "envoyer" avec la variable "destinataire" ?
0
Profil bloqué
 
Isset vérifie que ta variable soit définie, pour pouvoir après tester l'égalité ou quoi.
Ensuite, tu testes la valeur qui est transférée via ton form, tans $_POST

et en gros, tu vas mettre ce que tu veux dans ta variable $destinataire.

Et pour l'utiliser, il te faudra juste mettre
<?php echo $destinataire ?>
Qui va ecrire ce qui est contenu dans la variable $destinataire.

0
jeremyyyyy Messages postés 32 Statut Membre 1
 
Comme cela ?

<form method="post" action="<?php echo $destinataire ?>">

<tr>
<td class="normal">Service à contacter</td>
</tr>

<tr>
<td width="300" height="24">
<select name="Destinataire" id="Destinataire">

Service 1<input name="Service 1" type="checkbox" value="personne1" checked /><br />

Service 2<input name="Service 2" type="checkbox" value="personne2" checked /><br />

Service 3<input name="Service 3" type="checkbox" value="personne3" checked /><br />

Service 4<input name="Service 4" type="checkbox" value="personne4" checked /><br />

</select>
</td>
</tr>

<?php
if(isset($_POST['personne1']))
{
$destinataire="adresse1@mail.com";
}
if(isset($_POST['personne2']))
{
$destinataire="adresse2@mail.com";
}
if(isset($_POST['personne3']))
{
$destinataire="adresse3@mail.com";
}
if(isset($_POST['personne4']))
{
$destinataire="adresse4@mail.com";
}
}
?>

<tr>
<td class="texte">Votre Nom</td>
</tr>

<tr>
<td width="300" height="24"><input name="Nom" size="26"></td>
</tr>
...
...
...
<tr>
<td class="texte">Votre Message</td>
</tr>

<tr>
<td width="100%"><textarea wrap=virtual rows=2 cols=26 name="Message" size="26"></textarea>
<br><br>
<input name="submit" type="submit" value="Envoyer" />
</td>
</tr>
</form>


MERCI POUR AIDE
0
Profil bloqué
 
mets plutôt

<form method="post" action="#ici">

<tr>
<td class="normal">Service à contacter</td>
</tr>

<tr>
<td width="300" height="24">
<select name="Destinataire" id="Destinataire">

Service 1<input name="Service 1" type="checkbox" value="personne1" checked /><br />

Service 2<input name="Service 1" type="checkbox" value="personne2" checked /><br />

Service 3<input name="Service 1" type="checkbox" value="personne3" checked /><br />

Service 4<input name="Service 1" type="checkbox" value="personne4" checked /><br />

</select>
</td>
</tr>

<?php
if(isset($_POST['Service1']))
{if ($_POST['Service1']=="personne1")
{
$destinataire="adresse1@mail.com";
}
{if ($_POST['Service1']=="personne2")
{
$destinataire="adresse2@mail.com";
}
{if ($_POST['Service1']=="personne3")
{
$destinataire="adresse3@mail.com";
}
{if ($_POST['Service1']=="personne4")
{
$destinataire="adresse4@mail.com";
}
}
}
?>

<tr>
<td class="texte">Votre Nom</td>
</tr>

<tr>
<td width="300" height="24"><input name="Nom" size="26"></td>
</tr>
...
...
...
<tr>
<td class="texte">Votre Message</td>
</tr>

<tr>
<td width="100%"><textarea wrap=virtual rows=2 cols=26 name="Message" size="26"></textarea>
<br><br>
<input name="submit" type="submit" value="Envoyer" />
</td>
</tr>
</form>

La valeur de $destinataire est :
<?php echo $destinataire ?>


Inspires toi de ça. Tu vas finir par trouver.
0
Profil bloqué
 
Disons que j'ai lu vite fait, j'ai juste modifié un ou deux truc de son code, pour qu'il puisse récupérer les infos dans la même page qu'est son form...

C'est vrai que j'ai pas forcément pris beaucoup de temps pour répondre

0