|
Pear库的一个应用
功能:
1,显示表单
2,验证用户输入,
如果是空显示“Your name is required”
如果含有字母外的符号,显示“Your name can only contain letters”
否则进行处理- <?php
- require_once "HTML/QuickForm.php";
- $form = new HTML_QuickForm('register', 'post');
- $form->addElement('text', 'firstName', 'Enter first name');
- $form->addElement('password','password', 'Enter your password');
- $form->addElement('textarea','ta','Description');
- $form->addElement('submit','sb','Submit form');
- $form->addRule('firstName', 'Your name is required', 'required');
- $form->addRule('firstName', 'Your name can only contain letters','lettersonly');
- if ($form->validate()) {
- // processing code goes here.
- echo 'Success!';
- }
- else {
- $form->display();
- }
- ?>
复制代码 有一个很诱人的优点,代码量极少,而且清晰易读。
缺点也很明显,
1,每次验证都要到服务端
2,表现层和控制层混合在一起,要表单显示的修改不够方便
下面是PHP处理后的代码:- <form action="/testpear.php" method="post" name="register" id="register">
- <div>
- <table border="0">
- <tr>
- <td align="right" valign="top"><span style="color: #ff0000">*</span><b>Enter first name</b></td>
- <td valign="top" align="left"><span style="color: #ff0000">Your name can only contain letters</span><br /> <input name="firstName" type="text" value="32" /></td>
- </tr>
- <tr>
- <td align="right" valign="top"><b>Enter your password</b></td>
- <td valign="top" align="left"> <input name="password" type="password" value="23" /></td>
- </tr>
- <tr>
- <td align="right" valign="top"><b>Description</b></td>
- <td valign="top" align="left"> <textarea name="ta">23</textarea></td>
- </tr>
- <tr>
- <td align="right" valign="top"><b></b></td>
- <td valign="top" align="left"> <input name="sb" value="Submit form" type="submit" /></td>
- </tr>
- <tr>
- <td></td>
- <td align="left" valign="top"><span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span></td>
- </tr>
- </table>
- </div>
- </form>
复制代码 没有 id 没有 class (或许是可以添加这两个属性的)要通过 CSS 修改样式几乎不可能
生成的HTML代码有些冗仲(没用CSS的缘故)
当然,HTML_QuickForm只是Pear中一个类,但这样的设计思想(不考虑表现层的易修改性)是不是贯穿整个类库?
附:
PEAR提供的类
http://www.pearchina.com/
登录与认证
性能测试
缓存
设置
控制台
数据库
日期时间
加密
事件
文件格式
文件系统
GTK组件
GTK2组件
HTML
HTTP
图形
国际化
日志
邮件
数学
网络
数字
支付
PEAR
PHP
过程
科学
语义网络
流媒体
数据结构
系统
文本
工具
测试
版本控制
校验
Web 服务
XML
----
QA Tools
PEAR Website
[ 本帖最后由 iptton 于 2007-5-11 08:03 编辑 ] |
|