首页 > 编程 > PHP > 正文

PHP自动生成表单代码分享

2019-11-21 22:57:18
字体:
来源:转载
供稿:网友

Form.php

<?php//Form.phpclass 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><?phprequire_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>

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表