PHP自动生成表单代码分享

   在PHP开发过程中,我们有时候会遇到表单不固定的情况,需要在程序运行过程中动态生成,这里分享一个PHP自动创建表单的类给大家

  Form.php

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206

<?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>nt<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();
}
}
?>

  使用示例:

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

<!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>

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

时间: 2024-08-21 14:55:27

PHP自动生成表单代码分享的相关文章

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"){

JSP实现用于自动生成表单标签html代码的自定义表单标签_JSP编程

本文实例讲述了JSP实现用于自动生成表单标签html代码的自定义表单标签.分享给大家供大家参考.具体如下: 这个是自己写的一个简单的JSP表单标签,用于自动生成checkbox,select,radio等标签,传入菜单集合生成html代码,自动选中指定值,用于java web项目的jsp页面. 1. Servlet部分代码: Map<String, String> map = new HashMap<String, String>(); map.put("2",

JSP表单标签,用于自动生成表单标签html代码

  这个是自己写的一个简单的JSP表单标签,用于自动生成checkbox,select,radio等标签,传入菜单集合生成html代码,自动选中指定值,用于java web项目的jsp页面. Servlet部分代码 JSP代码 生成的html代码

Jquery异步提交表单代码分享

 本文是jQuery结合ajax实现的异步提交表单的代码,是个人项目中提取出来的,分享给大家,有需要的小伙伴可以参考下.     功能很实用代码也很简单,就不多废话了,直接奉上: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $.ajax({ url:"mobileSurveyAction_addSurvey.action",//提交地址 data:$("#form1").serialize(),//将表单数据序列化 type:&

Ajax中通过JS代码自动获取表单元素值的示例代码_AJAX相关

我们在使用Ajax的时候,通常需要获取表单元素值,然后发送给后台的服务器端程序处理.如果表单元素不多的情况我们常常会通过GET方式来获取表单元素值,但如果表单元素非常多,此时就需要用POST方式来获取表单元素值,那么如何来获取表单元素值呢?下面给出一段JS代码即可自动获取表单元素的值了. function getFormQueryString(frmID) //frmID是表单的ID号,请在表单form中先命名一个ID号 { var frmID=document.getElementById(f

请问账套根据用户输入的数据自动扩展表单,这个在制作的软件中怎么输入代码?

问题描述 请问账套根据用户输入的数据自动扩展表单,这个在制作的软件中怎么输入代码? 请问账套根据用户输入的数据自动扩展表单,这个在制作的软件中怎么输入代码? 解决方案 http://blog.csdn.net/echoshinian100/article/details/38540321 解决方案二: 类似如自动调整宽度等样式,学习了

Ajax中通过JS代码自动获取表单元素值的示例代码

我们在使用Ajax的时候,通常需要获取表单元素值,然后发送给后台的服务器端程序处理.如果表单元素不多的情况我们常常会通过GET方式来获取表单元素值,但如果表单元素非常多,此时就需要用POST方式来获取表单元素值,那么如何来获取表单元素值呢?下面给出一段JS代码即可自动获取表单元素的值了. function getFormQueryString(frmID) //frmID是表单的ID号,请在表单form中先命名一个ID号 { var frmID=document.getElementById(f

Smarty简单生成表单元素的方法示例_php实例

本文实例讲述了Smarty简单生成表单元素的方法.分享给大家供大家参考,具体如下: smarty生成表单元素功能实现的原理是:给smarty一个数组,用于生成和显示菜单或选项,另外在传递一个选项的值,用于默认选择的匹配: 示例如下: php文件:index.php <?php include("smarty_inc.php"); $smarty->assign('cust_ids',array(1000,1001,1002,1003)); $smarty->assig

javascript实现自动填写表单实例简析_javascript技巧

本文实例讲述了javascript实现自动填写表单的方法.分享给大家供大家参考,具体如下: 在平时开发过程中,或者在访问某些站点,经常要频繁地填写一大堆表单时,我们可以利用javascript,写一段脚本,预先把要填的信息准备好,然后模拟点击按钮的动作,自动提交表单,轻松且高效. 步骤 1. 找到页面中对应的form,把form中所需的html控件列出来,如 <form name="customersForm" id="myform" method="