PHP Web表单生成器案例分析(2)

根据案例的需求分析可知,表单项的相关数据统一保存到一个多维数组中。其中,利用数字键名区分不同的表单项,每个表单项又是一个二维的关联数组。

// 利用多维数组保存表单元素 [ 0 => [], // 表单项---单选按钮 1 => [], // 表单项 2 => [], // 表单项---文本框 3 => [], // 表单项 …… ];

// 每个表单项的数组结构 0 => [ 'tag' => '', // 标记----input、textarea、select 'text' => '', // 提示文本----label标签内显示的内容 'attr' => [], // 属性数组----表单元素的属性,如type 'option' => [], // 选项数组----单选框或复选框中的每个选项 'default' => '' // 默认值----默认值 ],

//准备表单数组 // $elements数组保存整个表单 $elements = [ 0 => [], // 第1个表单项数组 1 => [], // 第2个表单项数组 ];

//文本框 0 => [ 'tag' => 'input', 'text' => '姓  名:', 'attr' => ['type' => 'text', 'name' => 'user'] ],

//单选框 3 => [ 'tag' => 'input', 'text' => '性  别:', 'attr' => ['type' => 'radio', 'name' => 'gender'], 'option' => ['m' => '男', 'w' => '女'], 'default' => 'm' ],

option利用关联数组保存具体的单选项,键名m、w为单选框的value属性值,对应的值“男”、“女”为该单选项的提示信息
default的值为option关联数组中的一个键名,表示默认选中哪一项

//复选框 4 => [ 'tag' => 'input', 'text' => '爱  好:', 'attr' => ['type' => 'checkbox', 'name' => 'hobby[]'], 'option' => ['swimming' => '游泳', 'reading' => '读书', 'running' => '跑步'], 'default' => ['swimming', 'reading'] ],

//下拉列表 5 => [ 'tag' => 'select', 'text' => '住  址:', 'attr' => ['name' => 'area'], 'option' => ['' => '--请选择--', 'BJ'=>'北京', 'SH'=>'上海', 'SZ'=>'深圳'] ],

//文本域 6 => [ 'tag' => 'textarea', 'text' => '自我介绍:', 'attr' => ['name' => 'introduce', 'cols' => 50, 'rows' => 5] ],

//提交按钮 7 => [ 'tag' => 'input', 'attr' => ['type' => 'submit', 'value' => '提交'] ]

表单的自动生成 1.表单的自动生成——读取$elements数组

实现思路

为了方便处理用户提交的数据,将$elements中的每个表单项与指定的数组进行合并,使得每个表单项都含有键为tag、text、attr、option和default五个元素,且顺序相同。

根据tag值,分别调用前缀为“generate_”的函数进行表单项的拼接

每个表单项占据一行,并返回拼接好的表单

2.表单的自动生成——拼接表单元素的属性

实现思路

定义函数generate_attr($attr, $items = ‘')用于完成表单元素属性的拼接

$attr数组中元素的键为属性名称,元素的值为属性的值

通过遍历完成属性与$items的拼接并返回,如type=“radio” name=“gender”

3.表单的自动生成——拼接input元素

实现思路

根据是否含有option元素,判断是否是单选或多选

若不是,则直接调用属性函数完成表单项的拼接

若是,则通过遍历依次完成多个选项的拼接并返回

在这里插入图片描述

4.表单的自动生成——拼接select元素

实现思路

拼接下拉列表的选项option

完成select标记的完整拼接并返回

在这里插入图片描述

5.表单的自动生成——拼接textarea元素

实现思路

拼接textarea元素的属性

完整拼接textarea并返回

在这里插入图片描述

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f94196a38e42dcc8d6366affb61035cc.html