当前位置: 首页 > 图文教程 > 网络编程 > PHP > 如何简单使用WASP进行PHP开发(2)

PHP
mysql5的sql文件导入到mysql4的方法
sqlyog 中文乱码问题的设置方法
PHP CURL函数库
PHP 面向对象改进后的一点说明
攻克CakePHP系列一 连接MySQL数据库
CakePHP去除默认显示的标题及图标的方法
攻克CakePHP系列二 表单数据显示
攻克CakePHP系列三 表单数据增删改
smarty的保留变量问题
PHP syntax error, unexpected $end 错误的一种原因及解决
如何使用PHP编程说明
php合并数组array_merge函数运算符加号与的区别
php初学者写及时补给skype用户充话费的小程序
MySql 按时间段查询数据方法(实例说明)
Php Cookie的一个使用注意点
PHP程序61条面向对象分析设计的经验小结
令PHP初学者头疼十四条问题大总结
mysql limit查询优化分析
使用Limit参数优化MySQL查询的方法
方便实用的PHP生成静态页面类(非smarty)

如何简单使用WASP进行PHP开发(2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 184 ::
收藏到网摘: n/a

下面是模版式的HMTL代码,保存在 Todo/Entry/templates/index.chunk;

 <html>
  <body>
    <form name="entry" method="post">
      <h3>Create Entry</h3>
      <p>
        Name:<br/>
        <input type="text" name="Name"/>
      </p>
      <p>
        Date Due (format mm/dd/yyyy):<br/>
        <input type="text" name="Due"/>
      </p>
      <input type="submit" name="Add" value="Add"/>
    </form>
  </body>
</html> 

 这个页面是主要的输入界面,没有必要包含任何的数据操作的代码。这个页面仅仅包含了一个简单的表单和二个文本输入框和一个确认按钮。
 这是为登录界面要做的所有。访问/Todo/Entry的URL你会得到下面的图面:

 

 我们已经得到了正确的结果。这个页面唯一需要的事件就是为Add按钮添加单击事件,而我们仅要做的就是为这个事件修改事件处理代码。按照习惯,处理所有表单事件(包括其它一些事件)的代码在类 Chunk 的 handleEvents() 方法里面。
 下面是 Todo/Entry/EntryIndexPage.php 文件中的handleEvents()的代码:
 protected function handleEvents()
   {
     //Check for Add button presses
     if (Request::getParameter('Add') != null)
     {
         $oTask = new TaskWrapper();
         $oTask->fillFromRequest();
         $oTask->save();
         $this->redirect('../');
     }
   }

  代码:
  //Check for Add button presses
if (Request::getParameter('Add') != null)
{
  $oTask = new TaskWrapper();
  $oTask->fillFromRequest();
  $oTask->save();
  $this->redirect('../');
}

处理了用户在登录页面点击Add 按钮后的事件。当事件发生时,应该创建一个新的任务。因为文件框的命名为Name 和 Due 和数据库中表的字段名字相符合,所以我们可以使用代码:
$oTask = new TaskWrapper();
$oTask->fillFromRequest();
来创建一个新的 TaskWrapper对象,并且从表单中得到数据。在这种情况下,仅有Name和Due是处理的数据,数据表字段也少,感觉不到其便利,但是可以想像一下在处理有很多个数据时的便利。在以前得在$oTask对象中处理用户请求,然后操作数据库等等,但在这里大多数情况下不需要这样做。
代码:
$oTask->save();
可以来完成这些。当TaskWrapper对象没有设置主键时,这个方法将向数据库插入一条记录。如果以下面的方式创建对象
$oTask = new TaskWrapper(12);
并且调用save()方法,将会修改主键值为12的记录。

注意一下$this->redirect()方法,这个方法将会跳转到主页面,可以看到所有的记录。现在还没有书写主页面程序,所以还不能看到保存过的数据。

 

Main Todo Page (主要 Todo 页面)

用创建输入时的方法创建主要页面。首先创建模版 Todo/templates/index.chunk, 文件内容为:
  <html>
  <body>
    <h3>{Title}</h3>
    <li flexy:foreach="arTasks,key,task">{task[Name]} - <i>{task[Due]}</i></li>
    <p>
      <a href="Entry/">Add Task</a>
    </p>
  </body>
 </html>

注意一个内部的代码,请把所有注意力集中到标记<li>里面flexy中的foreac