FormBuilder基础教程-第一步:简介

2010年1月20日 | 分类: 计算机技术 | 标签: ,

注:本文翻译自FormBuilder的官方网站的教程。为了方便中文的阅读习惯和理解,我修改了一些英文的表述方式,并增加了一些个人注解。所以本文并不是忠实的翻译原文,用编译可能更合适。版权属于FormBuilder的官方网站。

欢迎来到FormBuilder教程!本教程将会手把手教你使用FormBuilder——从基本的表单到高级的模板和多语言的消息系统。

基础

FormBuilder设计用来处理CGI表单的方方面面——表单的产生、提交和验证。FormBuilder程序经常是反馈给自 身,也就是说你调用一个脚本,基于CGI参数来处理你的整个程序。

FormBuilder使用面向对象的调用风格,但这并不会把你吓跑。其使用非常简单,只需要你了解几个函数而已。在这个文档中, 我们的FormBuilder对象总是用$form来表示,当然在你的脚本中也可以这么使用。

基本步骤:

  1. 利用CGI::FormBuilder->new()来创建一个$form对象。
  2. 利用$form->field()定义表单域。
  3. 使用$form->submitted来检查表单是否已提交,如果是,使用$form->validate来验证。
  4. 利用$form->field()来获得每个值,然后做你任何想要的事(比如更新数据库等)。
  5. 如 果表单没有提交(或者验证失败),使用$form->render函数来打印表单。

就这么多。FormBuilder将会接管HTML和JavaScript,表格的布局、验证、持续性、错误信息等等。好了,咱们看一个简单的 FormBuilder程序。

下面是一个简单的FormBuilder程序:

  1. #!/usr/bin/perl
  2.  
  3. use CGI::FormBuilder;
  4.  
  5. @fields = qw(first_name last_name email phone);
  6.  
  7. $form = CGI::FormBuilder->new(
  8.              fields => \@fields,
  9.         );
  10.  
  11. if ($form->submitted && $form->validate) {
  12.     # you would write code here to act on the form data
  13.     $fname = $form->field('first_name');
  14.     $lname = $form->field('last_name');
  15.  
  16.     print $form->confirm(header => 1);
  17. } else {
  18.     print $form->render(header => 1);
  19. }

在上面的程序中,我们首先定义表单的域,然后创建一个$form对象将其纳入(必须使用数组的引\@fields来 确保数据一起传入)。FormBuilder使用这些数据,为每个域创建一个标签,然后使用$form->render 方法将所有的元素放在一个HTML表格中。事实上,FormBuilder甚至可以根据脚本的文件名为表单创建标题。(比如personal_info.pl 变成表单的标题 “Personal Info”)。当用户点击“提交”按钮,$form->submitted将返回true值, 在上面的例子中也会引起$form->validate的执行(由 于if语句中的&&操作符)。如果两者都返回true值,这意味着提交的表单数据有效,然后你就可以处理这些数据了。

使用field()获取表单的数据就像使用CGI.pm中的param()函数一样简单。field() 也有很多其他用处,这个我们以后会提到。好了,看看上面的程序的实际效果吧。 查看浏览器的源代码,可以看到我们的程序产生的HTML代码,这会有助于你的理解。

  1. 2010年1月26日23:29

    上面说得对