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 相关文章推荐
php mysql索引问题
Jun 07 PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
深入解析php之sphinx
May 15 PHP
php实现简单洗牌算法
Jun 18 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
Aug 11 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
Oct 08 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python编程实现使用线性回归预测数据
2017/12/07 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python实现FLV视频拼接功能
2020/01/21 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
keras得到每层的系数方式
2020/06/15 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
.net笔试题
2014/03/03 面试题
高中自我评价分享
2013/12/05 职场文书
春节活动策划方案
2014/01/24 职场文书
学生喝酒检讨书
2014/02/06 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
cf收人广告词
2014/03/14 职场文书
出生公证委托书
2014/04/03 职场文书
房租涨价通知
2015/04/23 职场文书
廉政承诺书范文
2015/04/28 职场文书