程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PEAR:HTML_QuickForm入門(一)

PEAR:HTML_QuickForm入門(一)

編輯:PHP綜合

相信每個PHP程序員都知道PEAR,而PEAR::HTML_QuickForm是PEAR中的一個非常實用的類庫,它可以讓你動態地創建,驗證和顯示Html表單。

主要特點如下:

* 可以創建20種常見的表單;
* 生成兼容性好的XHtml代碼 * 自動化的服務器端驗證和過濾
* 可以生成客戶端驗證代碼(JavaScript)。 * 支持多種模板引擎,如ITX, Sigma, Flexy, Smarty等
* 可加入自定義的表單元素、驗證規則和顯示規則。

下載和安裝請參看
http://pear.PHP.Net

首先我們來看這樣一個例子:

FirstForm.PHP

<!DOCTYPE HTML PUBLIC "-//W3C//DTD Html 4.0 Transitional//EN">
<Html>
<HEAD>
<TITLE> PEAR::Html_QuickForm </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Haohappy">
</HEAD>
<BODY>
<?
require_once("Html/QuickForm.PHP");

//建立一個表單對象
$form = new Html_QuickForm('frmTest', 'post');

$form->addElement('header', 'header', '請登錄');
$form->addElement('text', 'name', '用戶名:');
$form->addElement('password', 'passWord', '密碼:');
$form->addElement('submit', 'submit', '提交');

//輸出到浏覽器
$form->display();
?>     
</BODY>
</Html>

這種方法看起來是不是很酷 J 我們可以快速地創建表單,當然這不是我們使用QuickForm的主要原因,因為使用一些可視化的工具來創建表單似乎更快一些。

QuickForm可以創建的表單元素類型:

text

autocomplete

passWord

textarea

hidden

select

hIErselect

hiddenselect

checkbox

radio

submit

reset

button

image

file

advcheckbox

date

static

header

link

Html

處理表單數據

接下來我們加入對表單的處理功能。

Form2.PHP

<!DOCTYPE HTML PUBLIC "-//W3C//DTD Html 4.0 Transitional//EN">
<Html>
<HEAD>
<TITLE> PEAR::Html_QuickForm </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Haohappy">
</HEAD><BODY>
<?
require_once("Html/QuickForm.PHP");
$form = new Html_QuickForm('frmTest', 'post');
$form->addElement('header', 'header', '請登錄');
$form->addElement('text', 'name', '用戶名:');
$form->addElement('password', 'passWord', '密碼:');
$form->addElement('submit', '', '提交');if ($form->validate()) {
    $form->process('say_hello');
} else {
    $form->display();
}function say_hello($data) {
    print 'Hello, ' . $data['name'];
    print '<BR>';
    print 'Your password is '.$data['passWord'];
}?>
    
</BODY>
</Html>

在這段代碼裡,我們設計了一個say_hello()函數來處理表單,並通過$form->process()來調用。

輸入到表單的數據保存在一個$data數組中,可以傳遞給say_hello()函數。


表單數據驗證

我們再次對這段代碼進行改進,為其加入表單數據驗證功能

使用戶在登錄時必須輸入用戶名和密碼,並且用戶名長度不能小於三位。

Form3.PHP

<!DOCTYPE HTML PUBLIC "-//W3C//DTD Html 4.0 Transitional//EN">
<Html>
<HEAD>
<TITLE> PEAR::Html_QuickForm </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="Haohappy">
</HEAD><BODY>
<?
require_once("Html/QuickForm.PHP");
$form = new Html_QuickForm('frmTest', 'post');
$form->addElement('header', 'header', '請登錄');
$form->addElement('text', 'name', '用戶名:');
$form->addElement('password', 'passWord', '密碼:');
$form->addElement('submit', '', '提交');//加入三條驗證規則
$form->addRule('name','用戶名不能為空!', 'required');
$form->addRule('name','用戶名必須為3位以上字母或數字', 'minlength',3);
$form->addRule('passWord','密碼不能為空!', 'required');if ($form->validate()) {
    $form->process('say_hello');
} else {
    $form->display();
}function say_hello($data) {
    print 'Hello, ' . $data['name'];
    print '<BR>';
    print 'Your password is '.$data['passWord'];
}?>
    
</BODY>
</Html>

可以看到我們僅用了以下三行簡單的代碼來實現數據驗證功能,和我們平時所采取的方法相比方便得多。

//加入三條驗證規則
$form->addRule('name','用戶名不能為空!', 'required');
$form->addRule('name','用戶名必須為3位以上字母或數字', 'minlength',3);
$form->addRule('passWord','密碼不能為空!', 'required');

addRule()方法的四個參數分別表示規則應用的對象、提醒文字、驗證規則的類型(如required表示必須輸入,不能為空)、驗證規則的參數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved