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

PHP
工作笔记:配置MySQL为高可用集群 (1)
MySQL (C API)VC实例及代码下载 (1)(5)
MySQL (C API)VC实例及代码下载 (1)(4)
MySQL (C API)VC实例及代码下载 (1)(3)
MySQL (C API)VC实例及代码下载 (1)(2)
MySQL (C API)VC实例及代码下载 (1)
用JSP连接mysql数据库的方法 (1)(2)
用JSP连接mysql数据库的方法 (1)
MySQL数据库账户授权的相关管理解析 (1)(2)
MySQL数据库账户授权的相关管理解析 (1)
SAP MaxDB MySQL修补数据库严重漏洞
MySQL研发中心成立发布会会后访问整理 (1)(2)
MySQL研发中心成立发布会会后访问整理 (1)
MySQL中SQL-TEXT、DATE和SET数据类型
MySQL存在权限提升及安全限制绕过漏洞
MySQL 卸载的问题
windows下安装、卸载mysql服务
如何正确卸载MySQL
MySQL手册版本 5.0.20-MySQL优化(四) (1)(5)
MySQL手册版本 5.0.20-MySQL优化(四) (1)(4)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 50 ::
收藏到网摘: 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