11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

J'ai téléchargé une template "Site en construction" comportant un formulaire de contact (en php) et faisant appel à de l'ajax pour valider l'envoi du mail par l'utilisateur.
Je précise que je suis totalement néophyte en matière de programmation web ; après avoir réussi à résoudre le problème de l'envoi des e-mails qui ne s'effectuait pas, j'essaie de comprendre ce qui freine l'interaction entre la partie php et l'ajax pour (si j'ai bien tout compris) une prise en charge par la partie client.

Je pense qu'il manque dans le code une communication entre les deux outils ou bien celle-ci ne se fait pas correctement pour une raison qui dépasse mes modestes compétences. Si une âme charitable est susceptible de m'accompagner à passer de l'ignorance à la connaissance, elle recevra toute ma gratitude

Voici en premier lieu un lien vers la page en question :
http://energyconsulting-france.com

Voici ensuite le code PHP côté serveur :

<?php
// Email Setting
//=======================================
$admin_email = "contact@energyconsulting-france.com";
$from_name   = "contact@energyconsulting-france.com";

if(isset($_POST['email'])) {
	
	 $user_name 	= strip_tags($_POST['name']);
	 $user_email 	= strip_tags($_POST['email']);
	 $comment_text 	= strip_tags($_POST['message']);
	
	if (!filter_var($user_email, FILTER_VALIDATE_EMAIL)) {
	echo 5;
	exit;
	}
	else
	{
	$to  	   		= "$admin_email"; 
	$subject 		= "New Contact Information";
	$message		= "Name: $user_name <br/>";
	$message 		.= "Email: $user_email <br/>";
	$message 		.= "Comment: $comment_text <br/>";
	$headers  		= "MIME-Version: 1.0\r\n";
	$headers 		.= "Content-type: text/html; charset=iso-8859-1\r\n";
	$headers 		.= "From:$from_name<$admin_email>";
	$headers 		.= "Reply-To: $admin_email\r\n"."X-Mailer: PHP/".phpversion();
	$send 			= mail($to, $subject, $message, $headers);
	echo "1";
}
}
?>


Et le grand final, la partie AJAX coté client :

<script>
	/* ==============================================
	Ajax Submiting For Email Contact Form.
	=====================================================================*/	
	$("#contact_form").submit(function(e)
	{
	$('#show_contact_msg').html('<div class=gen>Submiting..</div>');
	var username = $('#contact_name').val();
	var useremail = $('#contact_email').val();
	var commenttext = $('#contact_text').val();
		var formURL = $(this).attr("action");
		var data = {
					username:username,
					useremail:useremail,
					commenttext:commenttext,
				   }
		$.ajax(
		{
			url : 'contact.php'
			type: "POST",
			data : data,
			
		 success: function (res) {
								 if(res=='1'){
									$('#show_contact_msg').html('<div class=gen>Thank you very much, We will notify you when we lunch</div>');
								 }
					
								 if(res=='5'){
								 $('#show_contact_msg').html('<div class=err>Please enter a valid email address</div>');
								 }
							}
		});
		e.preventDefault();	//STOP default action
	});
	</script>



Bien cordialement,
Thomas
Modifié par Acarya (19 Jun 2017 - 17:38)
Bonjour,

j'aurais bien voulu t'aider, mais j'ai ouvert le code source de ta page html... ça m'a découragé.
Il y a 10 000 classes, ce n'est pas indenté, des div pas centaines. Pfff, c'est vraiment horrible.

Pour ceux qui auraient le courage, voici le html du formulaire en question :
<form method="post" id="contact_form" action="contact.php">										<input type="text" id="contact_name" name="name" class="form-control contact_input_box wow fadeInUp animated" placeholder="Votre Nom" required="" style="visibility: visible; animation-name: fadeInUp;">										<input type="email" id="contact_email" name="email" class="form-control contact_input_box wow fadeInUp animated" placeholder="Votre E-Mail" required="" style="visibility: visible; animation-name: fadeInUp;">										<textarea id="contact_text" name="message" rows="5" cols="30" class="form-control contact_input_box wow fadeInUp animated" placeholder="Message" required="" style="visibility: visible; animation-name: fadeInUp;"></textarea>										<button type="submit" class="btn btn-primary contact_button wow fadeInUp animated" style="visibility: visible; animation-name: fadeInUp;"> <i class="fa fa-send-o"></i>  Envoyez votre message</button>									</form>


Concrètement, pour essayer de t'aider un peu, un morceau de code javascript doit "scruter" le bouton submit de ton formulaire, lorsqu'il est "focus" ça doit appeler ta page php de traitement du formulaire
Modifié par taspeur (19 Jun 2017 - 18:51)
Merci déjà de t'intéresser à mes difficultés !
Cette fonction dont tu parles ne serait pas celle dont j'ai cité le code ?