Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数据库中保存Zend Framework表单_Php_Zend Framework_Zend Form - Fatal编程技术网

Php 在数据库中保存Zend Framework表单

Php 在数据库中保存Zend Framework表单,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,我正在为Zend Framework构建一个表单生成器/生成器。这是为客户机设计的,因为客户机希望构建表单而无需编写代码,所以我需要一个拖放界面。用户必须能够将预定义的表单元素拖放到容器中以创建表单。这是最简单的部分,我几乎已经自己解决了。 更难的是,问题在于如何保存此表单。我希望将此表单保存在MySQL数据库中。我将如何处理这个问题 我在想: 将元素保存到数据库中 将表单保存到数据库中,包括元素id 扩展Zend_Form类,以便在请求表单时,加载所有元素并创建所需的php代码,以便在需要编

我正在为Zend Framework构建一个表单生成器/生成器。这是为客户机设计的,因为客户机希望构建表单而无需编写代码,所以我需要一个拖放界面。用户必须能够将预定义的表单元素拖放到容器中以创建表单。这是最简单的部分,我几乎已经自己解决了。 更难的是,问题在于如何保存此表单。我希望将此表单保存在MySQL数据库中。我将如何处理这个问题

我在想:

  • 将元素保存到数据库中
  • 将表单保存到数据库中,包括元素id
  • 扩展Zend_Form类,以便在请求表单时,加载所有元素并创建所需的php代码,以便在需要编辑时呈现和填充表单
有人有更好的建议吗,还是这样做


欢迎任何意见

不久前我也在尝试做同样的事情

似乎最好的选择是以
Zend_Config
格式保存Zend表单(
ini
xml
,这更易于通过JavaScript处理)

但实际上并不需要发电机。我刚刚在IDE中创建了快捷方式(用于表单元素、验证器等),因此我可以轻松地扩展抽象
my_表单


考虑共享生成器的代码,也许其他程序员也会加入并提供帮助。

我现在不得不这么做几次。。。这很简单

  • 存储所需信息:标签、字段名、类型、选项等(如果需要,您可以使用验证器/过滤器)

  • 通过迭代数据库存储字段,使用类型/选项创建每个元素,动态生成表单


  • ZF中的大多数类都可以序列化,因此如果您的系统已经负责构建表单元素,那么您可能有一个Zend_表单对象


    只需序列化()它并将其存储在文本或mediumtext字段类型中。当您重新加载它时,只需取消序列化(),您就拥有了一个功能强大的Zend_Form对象。

    谢谢您的输入,但是如何将内容保存到ini文件并检索它呢?只是使用fwrite,使用一些特定的命名方案,然后检索它?至于生成器,我编辑了主要问题。@Janis有作者,例如
    Zend\u Config\u Writer\u Ini
    Zend\u Config\u Writer\u Xml
    我选择这个答案作为最佳答案,因为它具有最大的灵活性。它允许我使用Zend_,还可以用jQuery实现我自己的验证方法和呈现方法。那么,我是这样使用它的:$var=unserialize($serialized_class)$var->render()?例如,除了开放数据库连接或文件等资源外,大多数变量都可以在PHP中序列化。如果将表单的序列化版本存储在数据库中,则从数据库加载表单后,应该能够再次唤醒它(取消序列化)。只需对文本字符串调用unserialize()并进行测试,以确保它是有效的Zend_表单类。如果是,您可以将其用作普通的Zend_Form类,并在视图中简单地回显以渲染它。请注意,文本字符串可能很长,我刚才用一个包含9个元素的表单对其进行了测试,序列化字符串在添加注释时出现了一些问题,对此表示抱歉。该消息的结尾应该是包含9个元素(即表单字段)的表单的序列化表单的长度为34000个字符。感谢您的输入。这是我要做这件事的最初方式。现在有3种可能的情况。哦做什么,做什么…:)