Symfony2:在jquery中使用生成的表单

我正在开发一个Web应用程序。 我有应该从网上创建和编辑的实体(相当经典,不是它)。</ p>

所以我想使用表单生成(使用Type和Handler)Symfony 提供,但我不想简单地以标准方式打印它们。 我想从jquery中调用这些表单,以便我可以在jQuery插件中使用验证等,例如 jEditable </ strong>。 </ p>

因此,我认为最好的方法是将我的表单作为json发送到jquery函数,该函数将把它放在我的HTML元素中。</ p>
\ n

我做了什么:</ p>

jQuery:</ strong> </ p>

  $。get(“getorganisationform”  /“+ curOId,function(data){
if(data.responseCode == 200){
$(”#innerModal“)。append(data.form);
}
});
< / code> </ pre>

控制器:</ strong> </ p>

  $ form = $ this-&gt; createForm(new OrganisationType,  $ organization); 

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

if ($ formHandler-&gt; process())
{
返回$ this-&gt;重定向($ this-&gt; generateUrl('adminpanel'));
}

返回新响应(json_encode($ form),200);
</ code> </ pre>

json_encode()实际上不发送任何内容,因为$ form是一个对象。 现在我有几个问题:</ p>


  • 有没有办法获取表单的html元素?</ li>
  • 是否有必要使用 json?</ li>
  • 有没有更好的方法在jquery中重用表单生成? (我想在这里讨价还价)</ li>
    </ ul>

    提前致谢!</ p>
    </ div>

展开原文

原文

I'm working on a web application. I have entities that are supposed to be created and edited from the web (quite classic, isn't it).

So I want to use the form generation (with Type and Handler) Symfony offers, but I don't simply want to print them in the standard way. I'd like to call those forms from jquery, so that I can use validation and such in jQuery plugins such as jEditable.

Therefore, I suppose the best way to do this is to send my form as a json to the jquery function, which will put it in my HTML element.

What I've done :

jQuery:

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

Controller:

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

The json_encode() actually doesn't send anything, as $form is an object. Now I have several questions:

  • Is there a way to get the html elements of the form?
  • Is it necessary then to use json?
  • Is there a better way to reuse form generation in jquery? (I'm thinking about jeditable here)

Thanks in advance!

2个回答



经过一番研究后,我决定渲染出一根喂养我表格的树枝。 这样我就可以获得响应中发送的html内容。 通常:</ p>

 返回$ this-&gt; render('MyBundle:Admin:form.html.twig',array(
'form'=&gt; $ form-&gt ; createView(),
));
</ code> </ pre>
</ div>

展开原文

原文

After some more research, I decided to render a twig that I fed my form. This way I get the html content sent in the response. Typically:

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



您可以尝试这个来获取html表单内容。</ p>

 返回新的响应(

json_encode(
array(
'form'=&gt; $ form-&gt; createView(),
'responcCode'=&gt; 200

),
200
);
</ code> </ pre>
</ div>

展开原文

原文

Can you try this for getting html form content.

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

dongwen1935
dongwen1935 一旦我使用json编码,响应就为空。 准确地说,响应是{“form”:{},“responseCode”:200}
8 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐