首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend_Form + DHTML内容

Zend_Form + DHTML内容
EN

Stack Overflow用户
提问于 2009-02-03 22:06:41
回答 4查看 444关注 0票数 2

新的 dhtml内容动态添加到通过Zend_Form生成的表单的最佳方法是什么?例如,假设表单的创建方式如下:

代码语言:javascript
复制
class formUser extends Zend_Form {
    public function __construct( $options = null ) {
        parent::__construct( $options );

        $page1 = new Zend_Form_Element_Text( 'page1' );
        $page1->setLabel( 'Page 1' );

        $submit = new Zend_Form_Element_Submit( 'submit' );
        $this->addElements( array( $page1, $submit ) );
    }
}

在这里,表单创建一个,也是唯一一个名为"page1“的元素,但是如果我想在视图中添加一个"Add”按钮来动态生成更多的元素,比如page2、page3、page4等,同时将它与Zend_Form集成,又该怎么办呢?

这是我说的效果

这不是我,但他有同样的问题,也许措辞更好

在我的例子中,这实际上是一个孩子和父母的关系。在这个地区,一个人可能有0到15个孩子,我不会提高眉毛。

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2009-02-06 13:41:54

我现在没有时间讨论编码的细节,但是下面是我要做的事情:

由于您希望表单的结构(而不仅仅是数据)是可编辑的,所以必须实例化它并将其存储在会话中。

JavaScript将不得不对服务器进行Ajax调用,而不是仅仅生成一些额外的HTML。单击"add“按钮时,该操作将以这种方式调用,然后将更改会话中的Zend_Form实例存储。Ajax调用可以返回要插入的附加标记或整个表单标记的新版本。

在前一种情况下,由您的JavaScript代码来确保以浏览器显示与服务器上的Zend_Form表示相一致的方式插入标记。在后一种情况下--在返回整个表单的情况下--用户输入必须在Ajax调用中传输,或者在表单被新版本替换时丢失。

票数 2
EN

Stack Overflow用户

发布于 2009-03-22 16:10:19

这里很好地描述了"cg“答案的实现。http://www.jeremykendall.net/2009/01/19/dynamically-adding-elements-to-zend-form/

票数 1
EN

Stack Overflow用户

发布于 2009-02-04 00:46:36

完成任务的一个提示可能是定义一个隐藏输入,在添加新元素时,可以在其中增加“pageNb”。

然后,要筛选和验证表单,可以使用一个循环动态地在控制器中创建元素及其验证要求。

类似于:

// PHP

代码语言:javascript
复制
$userForm = new formUser();

for ($i = 0; $i < $_POST['pageNumber']; ++$i)
{
  $element = new Zend_Form_Element_Text('page' . $i);
  $element->addValidator('SomeValidator');

  $userForm->addElement($element);
}

if ($userForm->isValid($_POST]) 
{
 // bla bla bla
}

// Javascript

代码语言:javascript
复制
function addNewInput ()
{
   pageNb = document.getElementbyId('pageNb').value;
   pageNb.value = ++pageNb;
   // here put the trick to create a new node/input element.
   newElement.id = pageNb.value;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/509112

复制
相关文章

相似问题

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