rwitchell / gump-form-builder
一个快速、可扩展且独立的PHP表单构建类。
1.0.2
2015-03-19 04:58 UTC
This package is not auto-updated.
Last update: 2024-09-24 04:00:27 UTC
README
一个基于文本规则(用管道分隔)输入生成网页表单的PHP类。基于GUMP (https://github.com/Wixel/GUMP),由Sean Nieuwoudt (http://twitter.com/SeanNieuwoudt)创建
可用于直接从数据库中提取实体,并将表列作为输入。然后您可以验证这些输入,并将其传回数据库。
脚本旨在处理30-150个需要各种规则的表单元素。当表单提交时,规则随后传递给GUMP进行输入值验证。
入门指南
使用方法(扩展版)
// build array
$input_rules = array(
'id' => 'nodisplay'
,'title' => 'select|options,array-titleOptions'
,'firstName' => 'text|max_len,4'
,'lastName' => 'text|after,(Family name)'
,'dob' => 'datetime|id,dob_datePicker'
);
$arrayOptions = array(
'titleOptions' => array(
'Mr'=>'Mr'
,'Mrs'=>'Mrs'
,'Ms'=>'Ms'
,'Miss'=>'Miss'
)
);
$input_javascript = array(
//http://trentrichardson.com/examples/timepicker/
"$('#dob_datePicker').datetimepicker({
dateFormat: 'yy-mm-dd'
,timeFormat: 'HH:mm z'
,minuteGrid: 15
,numberOfMonths: 1
,minDate: -90
,maxDate: 1
,addSliderAccess: true
,sliderAccessArgs: { touchonly: false }
}); \n"
);
$inputColumns = array('id', 'title', 'firstName', 'lastName', 'dob', 'phone' );
$formBuilder = new \GumpFormBuilder\GumpFormBuilder(); // rules controller
if( isset($request->get->view) ) {
$formBuilder->form_viewOnly( array('firstName', 'lastName') ); // Allows you to rearrange your view.
}
$formBuilder->form_rules($input_rules);
$formBuilder->form_rules_options($arrayOptions);
$inputArray = $formBuilder->run($inputColumns); // runs through all the fields and creates the HTML
$otherInputArray = $formBuilder->getOtherInputs(); // places non-prioritised inputs here
$html .= <<<HEREDOC
<form name="registerForm" id="registerForm" action="register.php" method="post" enctype="application/x-www-form-urlencoded">
<fieldset>
{$inputArray}
<button type='submit' name='submit' value="Register">Register</button>
</fieldset>
<fieldset>
{$otherInputArray}
</fieldset>
</form>
HEREDOC;
$html .= $formBuilder->outputJavaScript($input_javascript);
echo $html;
可用元素
可用的输入表单选项
- text
(如果没有输入,则为默认值)
- select下拉列表
- options
键值对数组
- 复选框
- 单选按钮
- 文件
- 按钮
- 隐藏
- 密码
- datetime(通过jQuery / JavaScript)
- nodisplay
不会创建输入
- max_len
对文本输入中可输入的字符数进行限制
- id
在输入的id选择器中放置值
- after
生成的文本直接位于输入右侧
- readonly
使输入为只读
- yesno
创建简单的单选选项
可用的输入验证选项
(目前所有GUMP选项均可使用)
- required
- max_len
如何贡献
待办事项
- 完成元素
- 构建排序元素的数组