通过前几次的博客学习的内容实现web表单生成器。
首先web表单是可以根据用户传递的不同参数,生成不同的功能的表单。在项目的实际开发中,经常需要设计各种各样的表单。直接编写HTML表单虽然简单,但修改相对于用PHP写的表单修改较麻烦。表单在web开发中是最基本和常用的功能,例如购物结算、信息搜索及页面登录等。简单来说表单就是在网页上用于输入信息的区域,主要的功能是收集用户输入的信息,并将其提交给后端的服务器进行处理,实现用户与服务器的交互。
需要
-
index.php
-
function.php
-
data.php
建立这些文件利于分工合作,利于代码的维护。在有项目时,不能是一个人独立完成整个 项目,根据客户的需求,去编写内容,离不开分工合作,创建上述的文件有利于代码的维护,修复及更 新。其中data.php中存放的是数据,function.php中存放的是逻辑,index.php是表现层(用户可以 直观看到的)。
一.创建data.php文件,写入数据
代码如下:
$data = [
[
"text" =>"姓 名:",
"tag" =>"input",
"attr" =>['type'=>'text','name'=>'username']
],
[
"text" =>"密 码:",
"tag" =>"input",
"attr" =>['type'=>'password','name'=>'pwd']
],
[
"text" =>"邮 箱:",
"tag" =>"input",
"attr" =>['type'=>'text','name'=>'email']
],
[
"text" =>"电 话:",
"tag" =>"input",
"attr" =>['type'=>'text','name'=>'tel']
],
[
'tag' => 'input',
'text' => '性 别:',
'attr' => ['type' => 'radio', 'name' => 'gender'],
'option' => ['m' => '男', 'w' => '女']
],
[
'tag' => 'select',
'text' => '城 市:',
'attr' => ['name' => 'area'],
'option' => ['' => '--请选择--', 'BJ' => '北京', 'SH' => '上海', 'SZ' => '深圳',]
],
[
'tag' => 'textarea',
'text' => '自我介绍:',
'attr' => ['name' => 'declare', 'cols' => '50', 'rows' => '5']
]
];
常用的聊天软件QQ,它的登录需要账号、密码及验证码,这些东西存放在data.php文件中。
二.创建function.php文件,写入逻辑,引入data.php
include "data.php";
/*综合函数*/
/*通过判断tag来分别调用生成input select textarea函数*/
function generate(){
global $data;
$html="";
foreach ($data as $item){
if($item["tag"]=="input"){
//调用生成input函数的标签
// input_html($item);
// echo input_html($item);
$html=$html.input_html($item);
}
else if($item["tag"]=="select"){
//调用生成select函数的标签
$html=$html.select_html($item);
}
else if($item["tag"]=="textarea"){
//调用生成textarea函数的标签
$html=$html.textatea_html($item);
}
}
return $html;
}
// 生成input标签的函数
function input_html($item){
$html="";//存贮HTML代码
//判断是文本框还是单选按钮
if($item["attr"]["type"]=="text"){
//判断是文本框
$html=$item["text"]."<input type='{$item['attr']['type']}' name='{$item['attr']['name']}'>";
//姓名 input标签
}
else if($item["attr"]["type"]=="radio"){
//判断是单选按钮
$html=$item["text"];
$html=$html."<input type='{$item['attr']['type']}' name='{$item['attr']['name']}' value='{$item['option']['m']}'>{$item['option']['m']}";
$html=$html."<input type='{$item['attr']['type']}' name='{$item['attr']['name']}' value='{$item['option']['w']}'>{$item['option']['w']}";
}
return $html."<p></p>";
}
//生成select标签的函数
function select_html($item){
$html=$item["text"];
$html=$html."<select>";
foreach($item['option'] as $v){
$html.="<option value='$v'>$v</option>";
}
$html=$html."<select>";
return $html."<br/>";
}
//生成textarea标签的函数
function textatea_html($item){
$html="";
$html=$item["text"];
$html=$html."<textarea name='{$item['attr']['name']}' cols='{$item['attr']['cols']}' rows='{$item['attr']['rows']}'></textarea>";
return $html;
}
三.创建index.php文件,引入function.php文件,并输出
<?php
include "function.php";
echo generate();
?>
最后在网址一栏中输出localhost/index.php.表单效果更多的是利用数组的知识设计出合理的数据保存结构,并根据保存数据的形式完成对应功能函数的定义。