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中实现进程间通讯
Oct 09 PHP
一个简单计数器的源代码
Oct 09 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
Zend Studio去除编辑器的语法警告设置方法
Oct 24 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
PHP 根据key 给二维数组分组
Dec 09 PHP
Laravel 读取 config 下的数据方法
Oct 13 PHP
PHP解决高并发问题
Apr 01 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定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
javascript的函数
2007/01/31 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
jquery编写日期选择器
2017/03/16 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
python append、extend与insert的区别
2016/10/13 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
Python中的Numpy矩阵操作
2018/08/12 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
2019/07/10 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
财务总监管理岗位职责
2014/03/08 职场文书
人资专员岗位职责
2014/04/04 职场文书
团支部建设方案
2014/05/02 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
Python中的tkinter库简单案例详解
2022/01/22 Python