Symfony2 Получить форму через Ajax - PullRequest
3 голосов
/ 30 ноября 2011

Я вызываю форму с помощью ajax, а не отображаю ее на странице.

Все работает, кроме 1 странной вещи.

Когда я вызываю форму через ajax и добавляю ее встраница, значения по умолчанию не находятся в полях.

Но если я вызываю форму через обычный URL, устанавливаются значения по умолчанию ...

$builder
        ->add('email', null,array('data' => 'default value')
        ->add('type_form', null, array('data' => 'default value', 'property_path'=> false))
        ->add('list_choice', 'choice', array(
            'choices' => $options['list'],
            'expanded'=>true,
            'multiple'=>true,
        ));

В полях email и type_form не отображаются'default value' в качестве значения, за исключением случаев, когда я вызываю форму через его URL-адрес, а не через ajax.

Есть ли конкретный способ вызова формы через ajax?Спасибо за ваши ответы.

Вот способ, которым я создаю форму в моем контроллере

$this->container->get('templating')->render('MyappSiteBundle:Contributions:filter_themes_form.html.twig', array(
'form'=> $form->createView(),
'type'=> $type ));

$response = new Response(json_encode(array('form'=> $response_form)));


$response->headers->set('Content-Type', 'application/json');
return $response;

Тогда я вызывал форму ...

1 Ответ

2 голосов
/ 02 декабря 2011

Я нашел решение.Прежде чем отправить данные, я очищал данные формы:

if ($request->getMethod() == 'POST') {
        $form->bindRequest($request);
        if ($form->isValid()) {
            $data = $form->getData();
            return $data;
        }
    }

Затем я вызывал форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...