Symfony2 envoyer un formulaire ajax

Je suis en train d'essayer de soumettre un formulaire via ajax pour mettre à jour un champ d'une entité, mais ne sais pas comment faire pour récupérer les données du contrôleur:

<form class="ajax" action="{{ path('ajax_setSocial') }}" method="post" {{ form_enctype(form) }}>
  <div class="editor">
        {{ form_errors(form) }}
        <div class="editLabel pls">{{ form_label(form.ragSocial) }}</div>
        <div class="editField"> 
            <div class="ptm">
                {{ form_widget(form.ragSocial) }} {{ form_errors(form.ragSocial) }}
            </div>     
            {{ form_rest(form) }}
            <div class="mtm">
                <button class="btn btn-primary disabled save" type="submit">Save</button>
                <button class="btn ann">Close</button>
            </div>
        </div>
  </div>
  var url = Routing.generate('ajax_setSociale');
        var Data = $('form.ajax').serialize();
        $.post(url, 
            Data
            , function(results){
                if(results.success == true) {
                    $(this).parents('ajaxContent').remove();
                    $(this).parents('.openPanel').removeClass('openPanel');
                } else {
                    alert('False'); //test
                }
        });

contrôleur (ajax_setSocial route)

public function setSocialeAction(Request $request)
{
      $em = $this->getDoctrine()->getManager();
      //$id = $request->get('form'); ???
    $entity = $em->getRepository('MyBusinessBundle:Anagrafic')->find($id);

    if (!$entity) {
        throw $this->createNotFoundException('Unable to find Anagrafic entity.');
    }

    $form = $this->createFormBuilder($entity)
       ->add('ragSocial', 'text', array('label' => 'Social'))
       ->add('id', 'hidden')
        ->getForm();
    $form->bind($request);

    if ($form->isValid()) {
        $em->persist($entity);
        $em->flush();

        $output = array();
        $response = new Response();
        $output[] = array('success' => true);
        $response->headers->set('Content-Type', 'application/json');
        $response->setContent(json_encode($output));
        return $response;
    }

Que les valeurs de récupération, puis passer l'id pour créer la requête et les autres valeurs de mise à jour de l'entité?
Et si les champs ne passe pas la validation, comment puis-je passer l'erreur?

OriginalL'auteur Lughino | 2013-02-24