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