1

我正在开发一个 Web 应用程序。我有应该从网络上创建和编辑的实体(非常经典,不是吗)。

所以我想使用 Symfony 提供的表单生成(带有类型和处理程序),但我不想简单地以标准方式打印它们。我想从 jquery 调用这些表单,以便我可以在jEditable等 jQuery 插件中使用验证等。

因此,我认为最好的方法是将我的表单作为 json 发送到 jquery 函数,该函数会将其放入我的 HTML 元素中。

我做了什么:

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() 实际上不发送任何东西,因为 $form 是一个对象。现在我有几个问题:

  • 有没有办法获取表单的 html 元素?
  • 那么有必要使用json吗?
  • 有没有更好的方法在 jquery 中重用表单生成?(我在这里考虑 jeditable )

提前致谢!

4

2 回答 2

0

你能试试这个来获取 html 表单内容吗?

return new Response(
    json_encode(
        array(
            'form' => $form->createView(),
            'responseCode' => 200
            )
        ), 
    200
);
于 2012-06-13T15:29:01.223 回答
0

在进行了一些研究之后,我决定渲染一个我喂给我的表格的树枝。这样我就得到了响应中发送的 html 内容。通常:

return $this->render('MyBundle:Admin:form.html.twig', array(
        'form' => $form->createView(),
    ));
于 2012-06-14T08:16:19.557 回答