PHP自动生成表单代码分享
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-29 14:30:03 浏览: 评论:0
在PHP开发过程中,我们有时候会遇到表单不固定的情况,需要在程序运行过程中动态生成,这里分享一个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>
Tags: PHP自动生成表单
- 上一篇:PHP实现中文圆形印章特效
- 下一篇:php判断访问IP的方法
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)