2011-11-30 4 views
3

페이지에 표시하는 대신 아약스로 양식을 호출합니다.Symfony2 Ajax를 통해 양식 가져 오기

이상한 것을 제외한 모든 것이 작동합니다.

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, 
     )); 

필드 이메일과 내가 양식을 호출하는 경우를 제외하고 값으로 '기본값'을 표시하지 않습니다 type_form 그의 URL, 아약스를 통하지 않고.

아약스를 통해 양식을 호출하는 특별한 방법이 있습니까? 답변 해 주셔서 감사합니다. 여기

내가 내 컨트롤러 그리고

$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; 

내가 양식을 부르고있는 양식을 만드는 방법

...

+0

정확히 Ajax로 양식을 호출합니까? –

+0

jquery를 사용하여 컨트롤러 동작 경로를 호출하고 양식을 만들고 Json var에 반환합니다. jquery는 innerHtml을 사용하여 양식을 페이지에 추가합니다. – Rmannn

+0

도움이되는 코드를 추가하십시오 – Rmannn

답변

2

나는 해결책을 찾아 냈다. 보내기 전에 양식 데이터를 지우는 중이었습니다.

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

그런 다음 양식을 신고했습니다.

관련 문제