jacodelucia
3/23/2015 - 3:46 PM

LARAVEL - Ajax Contact

LARAVEL - Ajax Contact

$('#sendMail').click(function(){
		var token         = $("input[name=_token]").val();
		var nom           = $('#nom').val();
		var prenom        = $('#prenom').val();
		var email         = $('#email').val();
		var message       = $('#message').val();
		
		$.ajax({
			type: "POST",
			url: '/',
			data: { 
				_token: token,
				nom: nom,
				prenom: prenom,
				email: email,
				captchaVerify: captchaVerify,
				message: message,
				envoyer: "envoyer"
			}
		}).done(function( msg ) {
			var reponse = $.parseJSON(msg);
			$('#retourMail').find('.error').remove();
			if(reponse.error){
				$('#retourMail').append(reponse.message);
				grecaptcha.reset();
			} else {
				$('#formulaire .inputField').hide();
				$('#retourMail').html(reponse.message);
			}
		});
		
		return false;
	});
<?php

class ContactController extends BaseController {
    public function contactPost(){
		
		$captchaResponse = Input::get('captchaVerify');
		$cap             = new GoogleRecaptcha();
		$verified        = $cap->VerifyCaptcha($captchaResponse);
		
		if( ! $verified ){
			$messages['error']   = true;
			$messages['captcha'] = 'nok';
			$messages['message'] = "<span class=\"error\">Veuillez vérifier le champ de vérification \"Recaptcha\" ci-dessus !</span>";
			return json_encode($messages);
		} else {
			$messages['captcha'] = 'ok';
		}
		
		$inputs = array(
		  'nom'       => Input::get('nom'),
		  'prenom'    => Input::get('prenom'),
		  'email'     => Input::get('email'),
		  'text'      => Input::get('message')
		);
		
		$validator = Validator::make(
		    $inputs,
		    array(
		    	'nom'     => 'required',
			 	'prenom'  => 'required',
			 	'email'   => 'required|email|email',
			 	'text'    => 'required'
		    )
		);
		
		if($validator->fails()) {
			$messages['error'] = true;
			$messages['message'] = '<span class="error">Veuillez vérifier que tous les champs sont bien remplis !</span>';
		} else {
			Mail::pretend('emails.contact', $inputs, function($message)
			{
			    //$message->to('sorgneb@gmail.com', 'Benjamin Le Jean')->subject('Message du site internet Aftermoon');
			    $message->to('guillaumemarin@gmail.com', 'Guillaume Marin')->subject('Message du site internet Aftermoon');
			});
			$messages['error'] = false;
			$messages['message'] = "<span class=\"success\">L'email a bien été envoyé.<br /><br />à bientôt,<br />Aftermoon</span>";
		}
		
		return json_encode($messages);
	}
}