28 Fév Utilisation du jQuery dans un formulaire en Symfony
// CONTROLLER
public function validationFormAction(Request $request)
{
$data = $request->request->get('form_contact');
$email = $data['email'];
$lastName = $data['lastName'];
$firstName = $data['firstName'];
$subject = $data['subject'];
$message = $data['message'];
if($email && $lastName && $firstName && $subject && $message){
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$entity = new Contact();
$form = $this->createForm(
new ContactType(),
$entity,
array(
'action' => $this->generateUrl('contactUs'),
'method' => 'POST',
'attr' => array('id' => 'contact-form')
)
);
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
}
return new JsonResponse(array('<div>Message envoyé avec succès !</div>'));
}else{
return new JsonResponse(array('<div>Email invalide !</div>'));
}
}else{
return new JsonResponse(array('<div>Veuillez saisir tous les champs !</div>'));
}
}
// ROUTE
verification:
path: /verification
defaults: { _controller: BaseBundle:Default:validationForm }
// LAYOUT
<script type="text/javascript">
$(document).ready(function() {
$("#submitContact").click(function (e) {
$("#msg_contact").removeClass().addClass('messagebox').fadeIn(1000);
$("#msg_contact").html('<div style="color:#000;font-weight:normal;padding:12px 10px 10px 13px;background:#fff;"><img src="{{ asset('') }}loading.gif" style="width:12px;float:left;margin-right:4px;" alt="loader" /> Veuillez patienter s\'il vous plaît ..</div>');
var Data = $("#contact-form").serializeArray();
console.log(Data);
$.ajax(
{
url: "{{path('verification')}}",
type: "POST",
data: Data,
success: function (data, textStatus, jqXHR) {
$('#msg_contact').html(data);
console.log(data);
}
});
$("#msg_contact").slideDown("slow");
e.preventDefault();
});
});
</script>