Heim > Artikel > Backend-Entwicklung > So generieren Sie automatisch Formulare in PHP
In diesem Artikel wird hauptsächlich die Methode zum automatischen Generieren von Formularen in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Während des PHP-Entwicklungsprozesses stoßen wir manchmal auf Situationen, in denen das Formular nicht festgelegt ist und während der Ausführung des Programms dynamisch generiert werden muss. Hier ist eine Klasse für PHP, um automatisch ein Formular für alle zu erstellen
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(); } } ?>
Verwendungsbeispiel:
<!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>
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
php für Datenbank-Lese- und Schreiboperationen und Zufallszahlenoperationen
So erstellen Sie dynamisch Ordner und laden Dateien in PHP hoch
PHPs Lese- und Schreiboperationen und Zufallszahlenoperationen für Datenbanken
Das obige ist der detaillierte Inhalt vonSo generieren Sie automatisch Formulare in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!