Symfony2:两个表单在同一个页面中 [英] Symfony2 : Two forms in a same page
问题描述
我的问题是当我尝试提交表单时,就好像它试图提交下面的第二个表单在页面中。
如下所示,您可以找到我的两种表单:
public function createSuiviForm(){
return $ form = $ this-> createFormBuilder(null)
- > add('numero','text',array ('label'=>'N°:',
'constraints'=> array(
new Assert\NotBlank(array('message'=>'XXXX')),
new Assert \Length(array('min'=> 19,'max'=> 19,'exactMessage'=>'XXX {{limit}} XXX'))))
- > add('xxxx','submit')
- > getForm();
$ b $ public function createModificationForm(){
return $ form = $ this-> createFormBuilder(null)
- > add(' ('label'=>'XXXXXXXXXXXXXXXXXXXX'))
- > getForm();
}
我的第二种形式只是提交按钮。
我将它们传递给我的渲染器,并使用以下代码显示它们:
< div class =以及>
< form method =postaction =''{{form_enctype(form)}}>
{{form_widget(form)}}
< input type =submitclass =btn btn-primary/>
< / form>
< div class ='errors'>
{{form_errors(form)}}
< / div>
< / div>
'form'是我的变量名称,以第一种形式
和'update'对于我的第二种形式。
当我尝试提交我的第二个表单时,我需要点击两次,最后得到:
此表单不应包含额外的字段。
以及剩余表单的所有非有效输入。
我尝试将validation_group添加到false但无济于事。
我不明白为什么我得到这个错误,因为我的表格根本没有嵌入
我希望你能理解...
您必须分别处理表单:
if('POST'=== $ request-> getMethod()){
if($ request-> request-> has('form1name')){
//处理第一个表格
}
if($ request-> request-> has('form2name')){
//处理第二个表格形式
}
}
I've got two forms in a same page.
My problem is when I tried to submit a form, it's like it tried to submit the second form below in the page as well.
As follow, you can find my 2 forms :
public function createSuiviForm() {
return $form = $this->createFormBuilder(null)
->add('numero', 'text', array('label' => 'N° : ',
'constraints' => array(
new Assert\NotBlank(array('message' => 'XXXX')),
new Assert\Length(array('min' => 19, 'max' => 19, 'exactMessage' => 'XXX {{ limit }} XXX')))))
->add('xxxx', 'submit')
->getForm();
}
public function createModificationForm() {
return $form = $this->createFormBuilder(null)
->add('modification', 'submit', array('label' => 'XXXXXXXXXXXXXXXXXXXX'))
->getForm();
}
My second form as only a submit button.
I passed them to my render and display them by using :
<div class="well">
<form method="post" action='' {{form_enctype(form)}} >
{{ form_widget(form) }}
<input type="submit" class="btn btn-primary"/>
</form>
<div class='errors'>
{{ form_errors(form) }}
</div>
</div>
'form' is the name of my variable to the first form and 'update' for my second form.
When I attempted to submit my second form, I need to click twice and finally I get :
"This form should not contain extra fields."
And all non valid input for the remainding form.
I tried to add validation_group to false but to no avail.
I don't understand why I got this error because my forms are not embedded at all
I hope you will understand...
You have to treat the forms separately:
if('POST' === $request->getMethod()) {
if ($request->request->has('form1name')) {
// handle the first form
}
if ($request->request->has('form2name')) {
// handle the second form
}
}
This is perfectly explained in Symfony2 Multiple Forms: Different From Embedded Forms
这篇关于Symfony2:两个表单在同一个页面中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!