Comment soumettre le formulaire ajax dans symfony2?
Je suis sur le point de soumettre mon formulaire avec Ajax,j'ai réussi à envoyer mon formulaire à l'aide de POST mais vous ne savez pas comment utiliser Ajax avec Symfony
builform
$builder->add('name', 'text', array('constraints' => array(new NotBlank()), 'attr' => array('placeholder' => 'Name')))
->add('gender', 'choice', array('empty_value' => 'Select Gender', 'constraints' => array(new NotBlank()), 'choices' => \AppBundle\Entity\Records::$gender_list, "required" => true))
->add('dateOfBirth', 'birthday', array('label' => 'Date Of Birth','required'=>true))
->add('image_path', 'file', array('label' => ' ','required'=>false, 'data_class' => null, 'constraints'=>array(new Assert\File( array('mimeTypes'=>$mime_types, 'maxSize'=>'2048k' )))))
->add('country_of_birth', 'entity', array('empty_value' => 'Country of Birth',
'class' => 'AppBundle\Entity\Location',
'property' => 'country',
'label' => 'Country of Birth'
))
->add('religion', 'entity', array('empty_value' => 'Select Religion',
'class' => 'AppBundle\Entity\Religion',
'property' => 'name',
'label' => 'Religion'
));
Action
$success = false;
$record_rep = new \AppBundle\Entity\Records();
$form = $this->createForm(new \AppBundle\Form\AddPersonType(), $record_rep);
if ($this->getRequest()->getMethod() == 'POST') {
$form->submit($request);
if ($form->isValid()) {
$data = $form->getData();
$file = $data->getImagePath();
$image = $file->getClientOriginalName();
$new_image_name = $this->hanldeUpload($image, $file);
$this->savetoDB($data, $record_rep, $new_image_name);
$success = true;
}
}
return $this->render('AppBundle:Homepage:add_person_form.html.twig', array('form' => $form->createView(), 'success'=>$success ));
}
OriginalL'auteur Amr | 2015-04-09
Vous devez vous connecter pour publier un commentaire.
Avec jQuery, utilisez
serialize()
le formulaire et l'envoyer à votre itinéraire.Dans votre action
il doit être ok comme ça. mais vous pouvez ajouter quelques paramètres tels que le format, méthodes, etc... dans votre routage.
Ressemble à la dernière ligne de la partie supérieure du bloc de code
});
au lieu de}
-HTHreturn new Response(json_encode(array('status'=>'success'));
manque une dernière parenthèse fermante. Devrait êtrereturn new Response(json_encode(array('status'=>'success')));
-HTHOriginalL'auteur MouradK
pour l'Ajax
et Pour l'Action
OriginalL'auteur Amr