PHP自动生成表单代码分享


Posted in PHP onJune 19, 2015

Form.php

<?php
//Form.php
class form {
    var $layout=true;//是否使用表格布局
    var $action;//表单要提交到的URL
    var $method;
    var $enctype="";
    var $name="";
    var $id="";
    var $class="";
    function form($action,$method="POST"){  //通过构造函数初始化成员变量
        $this->action=$action;
        $this->method=$method;
    }
    function form_start(){
        $text="<form action=\"{$this->action}\" method=\"{$this->method}\"";
        if($this->class!==""){
            $text.=" class=\"{$this->class}\"";
        }
        if ($this->enctype!=="") {
            $text.=" enctype=\"{$this->enctype}\"";
        }
        if($this->id!==""){
            $text.=" id=\"{$this->id}\"";
        }
        if($this->name!==""){
            $text.=" name=\"{$this->name}\"";
        }
        $text.=">\n";
        if($this->layout==true){
            $text.="<table>\n";
        }
        return $text;
    }
    function form_end(){
        if ($this->layout==true) {
            $text="\t</table>\n";
            $text.="</form>\n";
        }else {
            $text="</form>\n";
        }
        return $text;
    }
    //文本框函数
    function form_text($name,$id,$label_name,$label_for,$value=""){
        $text="<input type=\"text\" name=\"{$name}\" ";
        $text.="id=\"{$id}\" ";
        if(isset($value)){
            $text.="value=\"{$value}\" ";
        }
        $text.="/>\n";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //密码框函数
    function form_passwd($name,$id,$label_name,$label_for,$value=""){
        $text="<input type=\"password\" name=\"{$name}\" ";
        $text.="id=\"{$id}\" ";
        if(isset($value)){
            $text.="value=\"{$value}\" ";
        }
        $text.="/>\n";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //隐藏域函数
    function form_hidden($name,$id,$label_name,$label_for,$value=""){
        $text="<input type=\"hidden\" name=\"{$name}\" id=\"{$id}\" ";
        if(isset($value)){
            $text.="value=\"{$value}\" ";
        }
        $text.="/>\n";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //文件域函数
    function form_file($name,$id,$label_name,$label_for,$size=""){
        $text="<input type=\"file\" name=\"{$name}\" ";
        $text.="id=\"{$id}\" ";
        if(isset($size)){
            $text.="size=\"{$size}\" ";
        }
        $text.="/>\n";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //复选框函数
    function form_checkbox($name,$label=array(),$label_name,$label_for=""){
        $i=0;
        $text=array();
        foreach ($label as $id=>$value){
            $text[$i]="<input type=\"checkbox\" id=\"{$id}\" name=\"{$name}\" value=\"{$value}\" />";
            $text[$i].="<label for=\"{$id}\">{$value}</label>";
            $i++;
        }
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //单选框函数
    function form_radio($name,$label=array(),$label_name,$label_for=""){
        $i=0;
        $text=array();
        foreach ($label as $id=>$value){
            $text[$i]="<input type=\"radio\" id=\"{$id}\" name=\"{$name}\" value=\"{$value}\" />";
            $text[$i].="<label for=\"{$id}\">{$value}</label>";
            $i++;
        }
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //下拉菜单函数
    function form_select($id,$name,$options=array(),$selected=false,$label_name,$label_for,$onchange=""){
        if($onchange!==""){
            $text="<select id=\"{$id}\" name=\"{$name}\" onchang=\"{$onchange}\">\n";
        }
        else{
            $text="<select id=\"{$id}\" name=\"{$name}\">\n";
        }
        foreach ($options as $value=>$key){
            if($selected==$value){
                $text.="\t<option valute=\"{$value}\" selected=\"selected\">{$key}</option>\n";
            }elseif ($selected===false) {            
                $text.="\t<option value=\"{$value}\">{$key}</option>\n";
            }
        }
        $text.="</select>";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //多选列表函数
    function form_selectmul($id,$name,$size,$options=array(),$label_name,$label_for){
        $text="<select id=\"{$id}\" name=\"{$name}\" size=\"{$size}\" multiple=\"multiple\">\n";
        foreach ($options as $value=>$key){
            $text.="\t<option value=\"{$value}\">{$key}</option>\n";
        }
        $text.="</select>\n";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //按钮函数
    function form_button($id,$name,$type,$value,$onclick=""){
        $text="<button id=\"{$id}\" name=\"{$name}\" type=\"{$type}\"";
        if($onclick!==""){
            $text.=" onclick='{$onclick}'";
        }
        $text.=">".$value;
        $text.="</button>\n";
        if($this->layout==true){
            $form_item="<tr>\n\t<th> </th><td>{$text}</td>\n</tr>\n";
        }else {
            $form_item=$text;
        }
        return $form_item;
    }
    //文本域函数
    function form_textarea($id,$name,$cols,$rows,$label_name,$label_for,$value=""){
        $text="<textarea id=\"{$id}\" name=\"{$name}\" cols=\"{$cols}\" rows=\"{$rows}\">{$value}</textarea>\n";
        $label=$this->form_label($label_name,$label_for);
        $form_item=$this->form_item($label,$text);
        return $form_item;
    }
    //文字标签函数
    function form_label($text,$for){
        if($for!==""){
            $label="<label for=\"{$for}\">{$text}:</label>";
        }else {
            $label=$text.":";
        }
        return $label;
    }
    function form_item($form_label,$form_text){
        switch ($this->layout){
            case true:
                $text="<tr>\n";
                $text.="\t<th class=\"label\">";
                $text.=$form_label;
                $text.="</th>\n";
                $text.="\t<td>";
                $text.=$form_text;
                $text.="</td>\n";
                $text.="</tr>\n";
                break;
            case false:
                $text=$form_label;
                $text.=$form_text;
                break;
        }
        return $text;
    }
    function CreateForm($form_item=array()){
        echo $this->form_start();
        foreach ($form_item as $item){
            echo $item;
        }
        echo $this->form_end();
    }
}
?>

使用示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <link rel="stylesheet" type="text/css" href="css/styles.css" />
    <title>用户登录</title>
</head>
<body>
<?php
require_once("form.php");
$form=new form($_SERVER['PHP_SELF']);   //提交到本页
$form->layout=false;                   //不使用表格布局,大家可以把这句注释掉看结果有何不同
$name=$form->form_text("userid","userid","用户名","userid");
$passwd=$form->form_passwd("passwd","passwd","密码","passwd");
$submit=$form->form_button("","submit","submit","登录");
$form_item=array($name,$passwd,$submit);
$form->CreateForm($form_item);
?>
</body>
</html>

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
PHP4引用文件语句的对比
Oct 09 PHP
php扩展ZF――Validate扩展
Jan 10 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
thinkphp配置文件路径的实现方法
Aug 30 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
php输出文字乱码的解决方法
Oct 04 PHP
PHP实现中文圆形印章特效
Jun 19 #PHP
PHP 常用的header头部定义汇总
Jun 19 #PHP
PHP实现获取中英文首字母
Jun 19 #PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 #PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 #PHP
php实现通过ftp上传文件
Jun 19 #PHP
php结合正则获取字符串中数字
Jun 19 #PHP
You might like
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
jquery事件与函数的使用介绍
2013/09/29 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
Django 路由系统URLconf的使用
2018/10/11 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
python实现剪切功能
2019/01/23 Python
Python中dict和set的用法讲解
2019/03/28 Python
详解python持久化文件读写
2019/04/06 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
如何通过命令行进入python
2020/07/06 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
你常见到的runtime exception
2016/09/05 面试题
员工自我鉴定
2013/10/09 职场文书
水果超市创业计划书
2014/01/27 职场文书
新教师教学工作总结
2015/08/12 职场文书
清明节主题班会
2015/08/14 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android