Zend_Form&分页

时间:2011-04-06 16:52:18

标签: zend-framework zend-form zend-paginator zend-form-sub-form

我正在整理一个拥有众多SubForms的Zend_Form。事实上,它有可能有这么多的子表单,我希望它们出现在多个页面上。是否可以使用Zend_Paginator创建一些动态页数的多页形式?

这是一个更具体的例子。我正在创建一个页面,有人可以在单个图库中编辑众多照片的元数据。因此,他们点击编辑并从数据库中提取所有图像。页面是主表单,每个图像都放在子表单中。如果我只想要一个页面并且它们都显示出来,那么效果很好。我的工作做得很好。

现在,说有200张图片。显然,您不希望一次加载所有200张图像,因此我希望用户能够一次翻阅20张图像。我真的不在乎是否一次处理一个页面,或者是否存储了值,直到那时结束为真正的多页表单然后一次处理。

我尝试将图像数据传递给paginator,然后在部分循环中动态添加子表单。这是一个问题,因为在视图中的部分循环内部,它无法看到我需要访问的主表单以添加子表单($ this-> form-> addSubform())。

下一个想法是使用数据库查询的限制手动创建一个分页器,让它以这种方式翻阅数据。不理想,但我认为它会起作用。

关于更顺畅的整合的任何想法?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我认为Zend_Paginator对您来说是一个很好的解决方案。使用Zend_Db_SelectZend_Db_Table_Select适配器,您只能检索显示当前页面所需的最少量数据。

然而,zend框架尚不支持多页表单。但似乎有一种解决方法:http://framework.zend.com/manual/en/zend.form.advanced.html#zend.form.advanced.multiPage

  

目前,多页表单不是   Zend_Form正式支持;   但是,大部分都支持实施   它们是可用的,可以使用   用一点额外的工具。

您可以考虑仅使用javascript和jQuery来处理图像信息的编辑。只需在html中直接定义表单,然后使用jQuery访问它。