2012-06-13 5 views
1

웹 응용 프로그램에서 작업하고 있습니다. 웹에서 생성되고 편집되어야하는 엔티티가 있습니다 (상당히 고전적입니다.).Symfony2 : jquery에서 생성 된 양식 사용

그래서 형식 생성기 (형식 및 처리기 포함)를 사용하여 Symfony에서 제공하지만 표준 방식으로 인쇄하고 싶지는 않습니다. 그 양식을 jquery에서 호출하여 jEditable과 같은 jQuery 플러그인에서 유효성 검사를 사용할 수 있도록하고 싶습니다.

따라서,이 작업을 수행하는 가장 좋은 방법은 내 양식을 json으로 HTML 요소에 넣을 jsonery 함수로 보내는 것입니다.

은 내가했던 무엇 :

jQuery를 :

$.get("getorganisationform/"+curOId, function(data){ 
    if(data.responseCode==200){ 
     $("#innerModal").append(data.form); 
    } 
}); 

컨트롤러 :

$form = $this->createForm(new OrganisationType, $organisation); 

    $formHandler = new OrganisationHandler($form, $this->get('request'), $this->getDoctrine()->getEntityManager()); 

    if($formHandler->process()) 
    { 
     return $this->redirect($this->generateUrl('adminpanel')); 
    } 

    return new Response(json_encode($form), 200); 

로 json_encode() 실제로 $ 형태로, 아무 것도 보내지 않습니다 객체입니다. 이제 몇 가지 질문이 있습니다.

  • 양식의 html 요소를 가져 오는 방법이 있습니까?
  • json을 사용할 필요가 있습니까?
  • jquery에서 양식 생성을 재사용 할 수있는 더 좋은 방법이 있습니까? (나는 여기에 jeditable에 대해 생각하고있다)

미리 감사드립니다!

답변

0

좀 더 연구 한 후, 나는 내 양식을 공급 나뭇 가지 렌더링하기로 결정했다. 이렇게하면 응답에서 HTML 컨텐트가 전송됩니다. 일반적으로 :

return $this->render('MyBundle:Admin:form.html.twig', array(
     'form' => $form->createView(), 
    )); 
0

html 양식 콘텐츠를 가져 오기 위해이 방법을 사용해 볼 수 있습니까?

return new Response(
    json_encode(
     array(
      'form' => $form->createView(), 
      'responseCode' => 200 
      ) 
     ), 
    200 
); 
+0

json 인코딩을 사용하자마자 응답이 비어 있습니다. 정확하게 말하면 응답은'{ "form": {}, "responseCode": 200}' –

관련 문제