如何在PHP中创建用户可自定义的表单?

时间:2010-02-12 19:49:28

标签: php

我所在大学的一个部门要求CS部门建立一个网站,让校园里的教师可以回复一年一次的早餐。然后,他们希望能够从一些管理页面中提取所有已注册该事件的人。

这不是一个真正的问题,我可以创建一个简单的表单并将结果存储在我们这里的MySQL数据库中。

然而,我不确定的是,他们希望它是“可定制的”。也就是说,他们不仅希望能够更改RSVP问题的文本,还希望能够向表单添加更多问题。他们还希望能够自定义横幅图像。

是否有任何库或技术可以使这种定制变得不那么痛苦?如何让他们能够配置一些任意数量的表单字段并仍然将它们保存在数据库中?

4 个答案:

答案 0 :(得分:1)

typolight cms拥有这样的表单生成器。您可以将其用于此目的,也可以查看它的来源,因为它是根据LGPL许可的。

答案 1 :(得分:1)

听起来他们需要CMS。您可以查看现有的Joomla或Drupal,但与您描述的简单应用程序相比,它们非常“大”。因此,如果您自己这样做,那么您可以考虑创建存储字段的表格。

Fieldid   fieldname  fieldlabel ...
  1         fname      First Name
  2         lname      Last Name
  3         meat       Do you like Meat?
...

然后,您可以创建一个表单,允许他们根据需要添加新字段。然后生成循环遍历此表的表单,并为找到的每个字段创建输入。

当他们提交表单时,您可以遍历字段列表以获取值并将其存储在另一个表中。

 Answerid    Fieldid    Answer
   1            1         Jack
   2            2         Black
   3            3         Yes

  ....

当然这是一种简单的外观,我认为随着你的进步,它会变得更加复杂。

答案 2 :(得分:0)

为什么不将问题存储在您的数据库中并制作另一个允许他们添加/删除/编辑问题的管理页面?您也可以将横幅图像存储在某处。

答案 3 :(得分:0)

我会创建一个包含这样的列的表(例如,根据需要添加字段)。

  • UID(Pri key)
  • 表格编号
  • 输入标签。
  • 输入类型
  • 默认值

然后,当您使用表单时,您只有一个表单编号。编写一个函数来从这个表中获取元素并根据每个元素创建一个输入 - 你首先输入这些数据将需要另一个表单。这样您就可以拥有可变长度的字段。你甚至可以拥有一个模板表并在那里保存表格。

我将表单配置存储在一个单独的表中。

与往常一样,正确验证输入 - 如果您从用户输入呈现HTML并考虑存储过程,这将是至关重要的。