gpt4 book ai didi

zend-framework - Zend Framework 动态添加表单字段并填充

转载 作者:行者123 更新时间:2023-12-04 18:20:21 26 4
gpt4 key购买 nike

我一直在尝试创建一个表单,用户只需按下一个按钮,表单就会添加一个新字段供用户使用。我有 2 个这些动态添加的字段类型。

首先是用户可以上传文件的字段,通过按下添加按钮,另一个字段将粘贴在当前字段下方并准备好使用。

我遵循了一个关于如何使用一些 ajax 和 jQuery 来完成这项工作的旧指南。

准确地说,本指南:http://www.jeremykendall.net/2009/01/19/dynamically-adding-elements-to-zend-form/

如您所见,它来自 2009 年,有点过时,但在当前 Zend Framework 版本 1.11.11 下仍然有效

然而,问题出现了,因为我想要表单的编辑/更新版本。我需要填充它的字段,但首先我需要为要存储的数据创建足够的字段。因此,当有 3 个文件已上传时,它应该创建 2 个附加字段并将 3 个文件名放在这些字段中准备好进行编辑和更新。只需使用 $form->populate($stuff)不会工作

我只是不知道如何做到这一点,动态添加字段的教程只到 addAction而不是如何创建 editAction在这些条件下。

是否有关于如何创建和管理此类表单的教程?我敢肯定我不是唯一一个有想法建立这种形式的人吗?

如果有要求,我可以添加我的代码,但它与指南中的示例相同,只是表单中的一组元素不同。

添加一个使用它的小例子。
用户添加一个包含 3 个文件的项目,这些文件与文件名一起上传,因此在数据库中显示如下:File_Id : '1' , File_Name : 'SomeFile' , File_location : 'somewhere/on/my/pc/SomeFile.txt'.
现在用户意识到他忘记了一个文件或想从该列表中删除一个文件,他转到编辑页面,在这里我希望表单显示以前添加的文件名。因此,如果有 3 个文件,它显示 3,当有 2 个文件时,它显示 2,等等。我如何构建一个表单以根据上传文件的数量动态添加字段,然后填充它们?

任何关于如何处理这个问题的建议都非常感谢:)

最佳答案

您可以使用半魔法 setXxx()形式的方法。

表格内:

public function setFiles($files) {
foreach ($files as $file) {
$this->addElement(/* add a file element */);
//do other stuff, like decorators to show the file name, etc.
}
}

在您的 Controller 中:
$files = $model->getFiles();
$form = new Form_EditFiles(array('files' => $files));

通过传递带有键 files 的数组您将让表单尝试调用名为 setFiles() 的方法,您在上面方便地提供了。

这应该将您推向正确的方向,或者至少我希望如此。

关于zend-framework - Zend Framework 动态添加表单字段并填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10811766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com