首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提交Zend Dojo subForm

如何提交Zend Dojo subForm
EN

Stack Overflow用户
提问于 2011-09-08 21:01:41
回答 1查看 652关注 0票数 0

我花了几个小时在网上寻找解决方案,但什么也没有起作用。

我有一个被分成2个subForms的表单(我不能让折叠面板工作)

如下所示:

代码语言:javascript
复制
$sfBase = new Zend_Dojo_Form_SubForm('base_info');
$sfBase->setName('base_info')
            ->setAction('/product/add?f=1');

$id = new Zend_Form_Element_Hidden('id');
$id->addFilter('Int')
      ->setAttrib('style', 'display:none');

$nom = new Zend_Dojo_Form_Element_TextBox('name');
$nom->setLabel('Nom du produit')
     ->setTrim(true)
     ->setValue("Entrez le nom")
     ->setPropercase(true);

$sdesc = new Zend_Dojo_Form_Element_TextBox('sdesc');
$sdesc->setLabel('Courte description du produit')
      ->setTrim(true)
      ->setValue("Description")
      ->setPropercase(true);

$sfBase->addElements(array($id, $nom, $sdesc);

$submitSubBase = new Zend_Dojo_Form_Element_SubmitButton('sub1');
$submitSubBase->setLabel('ok');
$sfBase->addElement($submitSubBase);

和另一个子表单,其中包含的其他元素很少:

代码语言:javascript
复制
$sfComp = new Zend_Dojo_Form_SubForm('comp_info');
$sfComp->setName('comp_info')
       ->setAction('/product/add?f=2');
...
$submitSubComp = new Zend_Dojo_Form_Element_SubmitButton('sub2');
$submitSubComp->setLabel('envoyer');
$sfComp->addElement($submitSubComp);

$this->addSubForms(array('base_info' => $sfBase,
            'comp_info' => $sfComp
            ));

在我的控制器中,我显示了整个实例化的表单:

$this->view->base = $form;

但是,每当我单击提交按钮时,什么也不会发生。我尝试将单个提交按钮添加到表单(而不是subForm)

使用setAction:

代码语言:javascript
复制
$baseForm->setAction($this->view->url(
            array('controller' => 'Product', 'action' => 'add', 'id' => '1'), 'default', 
            true));

但这是相同的,最后我将表单划分为两个不同的Zend_Form而不是子表单,但这并不是很干净……

因此,在尝试了多页表单、subForms和dojo容器都没有成功之后,我不知道该怎么做,欢迎任何帮助!

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-09-10 20:33:17

我不知道这是否会有任何帮助,但这是我的答案。

如果主表单没有启用Dojo,那么您是否在init方法中调用了Zend_Dojo::enableForm()?主窗体是从Zend_Dojo_Form扩展而来的吗?如果它是从Zend_Dojo_Form扩展的,那么您不必调用Zend_Dojo::enableForm()。

Dojo表单通过使用javascript提交。您应该在客户端有一些javascript,它可以处理从服务器返回的响应。如果你在客户端没有javascript来处理这些返回,那么你就不会‘看到’提交的结果。

尝试一下,使用dojo工具包编写一些javascript,当它从服务器接收到一些东西时,它将创建一个警报框。这样,如果您单击submit按钮并弹出一个警告框,您将知道表单已提交。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7348456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档