前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP自动生成表单的Form类

PHP自动生成表单的Form类

原创
作者头像
用户7999227
修改2021-09-24 10:40:40
1.7K0
修改2021-09-24 10:40:40
举报
文章被收录于专栏:Java小王子Java小王子
代码语言:javascript
复制
<?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();

    }

 
}
?></pre> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml&quot; 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></pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com