PHP自动生成表单代码分享

前端技术 2023/09/03 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>

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

本文地址:https://www.stayed.cn/item/6948

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。