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

如何贡献

待办事项

  • 完成元素
  • 构建排序元素的数组