PHP自动生成表单代码分享

5年以前  |  阅读数:473 次  |  编程语言:PHP 

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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例