php - 如何使用 OOP 动态构建 PHP 表单?

标签 php oop class forms

我将如何着手创建一个真实世界的表单创建类,我可以使用它来显示具有不同类型字段的新表单,因为我想要多少字段,我可以使用下拉列表,我可以通过以下方式完成所有这些使用 OOP?

最佳答案

老实说,考虑到有一些成熟的 PHP 表单包,我不会自己动手。

我将 PEAR 的 HTML_QuickForm 包 ( http://pear.php.net/manual/en/package.html.html-quickform.php ) 用于 PHP4 站点。

对于 PHP5,我会查看 Zend_Form ( http://framework.zend.com/manual/en/zend.form.html )。

对于我的快速表单代码,我使用了一个帮助程序类,它让我可以使用配置数组定义表单。例如:

echo QuickFormHelper::renderFromConfig(array(
  'name' => 'area_edit',
  'elements' => array(
    'area_id'           => array('type' => 'hidden'),
    'active'            => array('type' => 'toggle'),
    'site_name'         => array('type' => 'text'),
    'base_url'          => array('type' => 'text'),
    'email'             => array('type' => 'text'),
    'email_admin'       => array('type' => 'text'),
    'email_financial'   => array('type' => 'text'),
    'cron_enabled'      => array('type' => 'toggle'),
    'address'           => array('type' => 'address'),
  ),
  'groups' => array(
    'Basic Details'   => array('site_name', 'base_url'),
    'Address Details' => array('address'),
    'Misc Details'    => array(), // SM: Display the rest with this heading.
  ),
  'defaults' => $site,
  'callback_on_success' => array(
    'object' => $module,
    'function' => 'saveSite',
   ),
));

请注意,上述元素类型“address”和“toggle”实际上是多个表单字段(基本上是元类型)。这就是我喜欢这个帮助程序类的原因 - 我可以定义一组标准的字段及其规则(例如地址、信用卡等),并且可以以一致的方式在很多页面上使用它们。

关于php - 如何使用 OOP 动态构建 PHP 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/288614/

相关文章:

php - 对于包含每个用户必须填写的大量复选框的表单,我应该使用什么数据库结构?

javascript - 构建 JavaScript : Writing a basic validator

java - 为什么我们在这个类方法中使用同步块(synchronized block)?

java类/接口(interface)适配器问题

c++ - 基类中的 _forceinline 虚函数是否会在派生类中 __forceinlined 而不明确声明?

php - 使用 php exec() 执行 linux 命令并运行 shell 脚本

javascript - JS/PHP/ZendFramework - 当我用 php 和 ajax 单击按钮时更新我的​​数据表

python - 初始化 Python 类中的静态字段

php - Bootstrap 3 Typeahead Ajax 搜索使用 php mysql 函数

C++从一个函数返回一个二维对象数组以在另一个函数中使用