Envoyer un formulaire html

Fermé
dauphin_dcds Messages postés 3 Date d'inscription dimanche 8 juin 2014 Statut Membre Dernière intervention 14 juin 2014 - 8 juin 2014 à 19:29
dauphin_dcds Messages postés 3 Date d'inscription dimanche 8 juin 2014 Statut Membre Dernière intervention 14 juin 2014 - 14 juin 2014 à 03:44
Bonjour tout le monde!

Je suis débutante en html et JS, et ne connais rien du PHP.
Je cherche à écrire un code qui permettrait à l'utilisateur de m'envoyer un formulaire complété, en n'utilisant que du html et JS (et à la limite PHP, si vous pouvez m'expliquer un moyen simple de l'utiliser...).

Voici mon code HTML :

<!DOCTYPE>

<html>

<head>
<link rel="stylesheet" href="FinalProject.css">
<title>Commentaires, annonces et suggestionshh</title>
</head>

<body>

<h3 style="text-align:center;">
Un commentaire, une suggestion??
</h3>
<h1>C'est ici!</h1>

<form action="mailto:XXX@gmail.com" id="autre">


<b>Prénom: </b><input type="text" name="prenom">

<br><br>

<b>Nom: </b><input type="text" name="nom">

<br><br>

<b>Patrouille</b><br><br>
<input type="radio" name="patrouille" value="dauph">Dauphins<br>
<input type="radio" name="patrouille" value="alpag">Alpagas<br>
<input type="radio" name="patrouille" value="alez">Alezans<br>
<input type="radio" name="patrouille" value="chams">Chamois<br>
<input type="radio" name="patrouille" value="aucune">Aucune :)


<br><br>

<b>Place dans la Patrouille</b>

<br><br>

<select name="place" class="inputStyle inlineBlock">
    
	<option value="0">Place dans la patrouille</option>
	
		<optgroup label="HP">
			<option value="CP">CP</option>
			<option value="2nde">2nde</option>
		</optgroup>
		
		<optgroup label="Guide">
			<option value="3eme">3ème</option>
			<option value="4eme">4ème</option>
			<option value="5eme">5ème</option>
			<option value="6eme">6ème</option>
			<option value="7eme">7ème</option>
			<option value="8eme">8ème</option>
		</optgroup>
		
		<optgroup label="Autre">
			<option value="Cheftaine">Cheftaine</option>
			<option value="Parent">Parent</option>
		</optgroup>

</select>

<br><br>

<textarea name="commentBody" rows="4" cols="50" onkeypress="BLOG_CMT_onCommentBodyChange()"
placeholder="Entre ton commentaire, suggestion, annonce, etc... ici!"></textarea>

<br><br>

<b>Adresse Email</b> <input type="text" name="email">

<br><br>

<input type="reset" value="Recommencer" style="background-color:DodgerBlue;">
<br><br>
<input type="submit" value="Envoyer" style="background-color:DodgerBlue;" action="mailto:XXX@gmail.com">

</form>

</body>

</html>



Merci beaucoup d'avance!
A voir également:

1 réponse

Salut,
pour envoyer quelque chose il faut un destinataire et un expéditeur.

Ni HTML ni javascript ne permettent d'envoyer à un destinataire qu'il soit une boîte d'e-mail ou une base de données.

Pour cela il faut utiliser PHP qui va soit contacter le serveur d'e-mail(expéditeur) soit la base de données(l'expéditeur étant PHP à partir du contenu du formulaire) et lui transmettre le message.

Un formulaire HTML c'est appelé ainsi par analogie avec le formulaire papier. Si vous ne le mettez pas dans une enveloppe avec un timbre pour l'expédier à son destinataire vous ayez beau avoir un formulaire rempli il sera inutile.
Par analogie PHP c'est le timbre et l'enveloppe, je veut dire un moyen mais pas son principe d'acheminement jusqu'au destinataire.
Les avions, camions, postiers en vélo qui l'amènent seraient le serveur de messagerie Internet.
Tout mes exemples imagés(et pas si pertinent) pour dire que si on n'envoi pas(HTML uniquement) où on envoi sans timbre(sans PHP) le message arrivera pas(il ne sera même pas acheminé jusqu'au moyens logistique: le serveur de mails);


Si vous connaissez JavaScript il y a pas de grandes différences (comme entre tout les langages de programmations de type script) sauf que PHP à besoin d'un serveur pour l'interpréter: Apache, compris et configuré dans WAMP(programme gratuit simulant le mySQL et le PHP du serveur final).

"et à la limite PHP, si vous pouvez m'expliquer un moyen simple de l'utiliser..."

PHP est un langage , comme tout langage outil de communication)il faut commencer par les bases(grammaire, syntaxe, vocabulaire) et pratiquer.
PHP s'adressant à une machine est infinitésimalement plus simple que n'importe quel langage d'une créature vivante.
Plus borné aussi.

Pour envoyer un mail en PHP par exemple il faut utiliser la fonction mail()

https://www.google.fr/search?q=php+mail

Bien sûr comme je l'ai déjà indiqué il faut un serveur spécifique pour faire marcher PHP(interpréter est le terme exact), et savoir ce qu'est une fonction, une instruction de langage de programmation: les bases de la grammaire des langages de programmation.
0
Un tuto spécifique à l'envoi de données par formulaire:
http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/transmettre-des-donnees-avec-les-formulaires

et les explications de CCM sur les formulaires HTML et leur moyens de traitement:

https://www.commentcamarche.net/contents/493-formulaires-html-cours-et-exemples
0
dauphin_dcds Messages postés 3 Date d'inscription dimanche 8 juin 2014 Statut Membre Dernière intervention 14 juin 2014
9 juin 2014 à 17:09
Bonjour Alko!
Merci beaucoup pour ta réponse!

J'ai suivi les indications de W3Schools, mais ça ne marche toujours pas... pourriez-vous me dire si mon code est correct?

<!DOCTYPE>

<html>

<head>
<link rel="stylesheet" href="FinalProject.css">
<title>Commentaires, annonces et suggestions</title>

</head>

<body>



<h3 style="text-align:center;">
Un commentaire, une suggestion??
</h3>
<h1>C'est ici!</h1>
<?php
// display form if user has not clicked submit
if (!isset($_POST["submit"])) {
?>
<form action="mailto:XXX@gmail.com" id="autre" method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">


<b>Prénom: </b><input type="text" name="prenom">

<br><br>

<b>Nom: </b><input type="text" name="nom">

<br><br>

<b>Patrouille</b><br><br>
<input type="radio" name="patrouille" value="dauph">Dauphins<br>
<input type="radio" name="patrouille" value="alpag">Alpagas<br>
<input type="radio" name="patrouille" value="alez">Alezans<br>
<input type="radio" name="patrouille" value="chams">Chamois<br>
<input type="radio" name="patrouille" value="aucune">Aucune :)


<br><br>

<b>Place dans la Patrouille</b>

<br><br>

<select name="place" class="inputStyle inlineBlock">
    
	<option value="0">Place dans la patrouille</option>
	
		<optgroup label="HP">
			<option value="CP">CP</option>
			<option value="2nde">2nde</option>
		</optgroup>
		
		<optgroup label="Guide">
			<option value="3eme">3ème</option>
			<option value="4eme">4ème</option>
			<option value="5eme">5ème</option>
			<option value="6eme">6ème</option>
			<option value="7eme">7ème</option>
			<option value="8eme">8ème</option>
		</optgroup>
		
		<optgroup label="Autre">
			<option value="Cheftaine">Cheftaine</option>
			<option value="Parent">Parent</option>
		</optgroup>

</select>

<br><br>

<textarea name="commentBody" rows="2" cols="60" onkeypress="BLOG_CMT_onCommentBodyChange()"
placeholder="Entre ton commentaire, suggestion, annonce, etc... ici!"></textarea>

<br><br>

<b>Adresse Email</b> <input type="text" name="email">

<br><br>

<input type="reset" value="Recommencer" style="background-color:DodgerBlue;">
<br><br>
<input type="submit" value="Envoyer" style="background-color:DodgerBlue;" action="mailto:XXX@gmail.com">

</form>
<?php 
} else {    // the user has submitted the form
  // Check if the "from" input field is filled out
  if (isset($_POST["from"])) {
    $nom = $_POST["nom"]; // sender
    $prenom = $_POST["prenom"];
    $commentBody = $_POST["commentBody"];
    // message lines should not exceed 70 characters (PHP rule), so wrap it
    $commentBody = wordwrap($commentBody, 70);
    // send mail
    mail("XXX@gmail.com",$subject,$message,"From: $from\n");
    echo "Thank you for sending us feedback";
  }
}
?>


</body>

</html>


Merci d'avance!
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
Modifié par animostab le 10/06/2014 à 02:25
Bonjour

deja il a 2 fois action dans la balise form efface la 1ère

ensuite mets tout le php après ton formulaire ca sera plus clair

enfin plusieurs choses
if (isset($_POST["from"])) -----> il n'y a aucun champ du formulaire dont le name est "from" donc cette condition ne peut être remplie et le formulaire ne sera pas envoyé. (si le post du champ dont le nom est from existe) ---> traiter le formulaire et envoyer

ensuite certain élément du formulaire ne sont pas récupérés :
(place et patrouille)
donc creer une variable qui recupère le post du champ place (meme chose pour patrouille)

les élément récupérés ($nom $prenom $commentBody) ne sont ensuite pas envoyé par la fonction mail() et patrouille et place ne sont pas nom plus récupérés et définis en variable

Dans la fonction mail
mail("XXX@gmail.com",$subject,$message,"From: $from\n");
les variables $subject $message et $from n'ont pas été définies
donc la quand ca marchera le message envoyé sera vide.

par exemple tu peux faire avant la fonction mail()

$subject="envoi de formulaire";

$message = "<p>".$nom . $prenom . "</p><p>a écrit<br>" . $commentBody . "</p>";

ainsi le sujet du mail sera "envoi de formulaire"
et le message envoyé sera
Nom Prénom
a écrit
le contenu du champ commentBody qui a été rempli récupéré par php et posté
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
10 juin 2014 à 02:18
dernier truc il faut que la page web ait l'extension .php et que ton hebergeur accepte la fonction mail() de php
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 737
Modifié par animostab le 14/06/2014 à 02:45
ca fait vachement plaisir ! meme pas une reponse ou un merci pour avoir décortiqué ton code php + formulaire, serais tu mal poli ou bien mal éduqué ?
0