CakePHP中使用AJAX!

昨天,David和Jack捣腾了半天,终于实现了CakePHP中使用AJAX删除用户记录,现将我们的经验总结后,与大家分享!

      使用 AjaxHelper 之前, 你必须下载来自www.prototypejs.orghttp://script.aculo.us 的最新版本的 JavaScript  库。并将解压后的src文件夹以及prototype.js文件,放置在目录“/cake/app/webroot/js”中。

      第一步:控制器部分!

      首先,要在controller中,需要引入 Ajax 和 Javascript helpers,引入RequestHandler组件:

1. class UsersController extends AppController{
2.      var $name = 'Users' ;
3.      var $helpers = array ( 'Html' , 'Form' , 'Ajax' , 'Javascript' );     //助手
4.      var $components = array ( 'Session' , 'Email' , 'RequestHandler' ); //组件

      控制器方法部分代码:

1. function knownusers(){
2.      $this ->set( 'knownusers' , $this ->User->find( 'all' , array ( 'id' , 'username' , 'email' ), 'id DESC' ));
3.  
4. }

 

01. function delete ( $id =null){
02.           $this ->layout = 'ajax' ;
03.           Configure::write( 'debug' ,0);
04.          if ( $id ){
05.              if ( $this ->RequestHandler->isAjax()){ //判断是否是ajax请求
06.                  $this ->User->del( $id );
07.                  $this ->set( 'knownusers' , $this ->User->find( 'all' , array ( 'id' , 'username' ), 'id DESC' ));
08.                  $this ->render( 'knownusers' , 'ajax' ); //使用render将数据返回给视图
09.              } else {
10.                  $this ->redirect( array ( 'action' => 'knownusers' ),null,true);
11.              }
12.          } else {
13.              $this ->Session->setFlash( '重试' );
14.              $this ->redirect( array ( 'action' => 'knownusers' ),null,true);
15.          }
16.      }

      第二步:视图部分。

01. <html>
02. <head><title> $title_for_layout </title>
03. <?php
04. if ( isset( $javascript ) ) { //在视图中引js文件
05.      echo $javascript ->link( 'prototype.js' );  //在视图中引js文件
06.      echo $javascript ->link( 'scriptaculous.js?load=effects' );
07.      echo $javascript ->link( 'controls.js' );
08. }
09. ?>
10. </head>
11.  
12. <div id= "knownusers" >
13.      <table>
14.      <tr>
15.          <th>id</th>
16.          <th>username</th>
17.          <th class = "actions" >Actions</th>
18.      </tr>
19.      <?php
20.  
21.          $i = 0;
22.          foreach ( $knownusers as $user ):
23.      ?>
24.          <tr>
25.              <td>
26.                  <?php echo $user [ 'User' ][ 'id' ] ?>
27.              </td>
28.              <td>
29.                  <?php echo $user [ 'User' ][ 'username' ] ?>
30.              </td>
31.              <td>
32.              <?php
33.              if ( isset( $ajax ) ) {
34.                  echo $ajax ->link( 'delete' , array ( 'action' => 'delete' , $user [ 'User' ][ 'id' ]), array ( 'update' => 'knownusers' )); //在删除操作上,使用ajax方式发送请求!
35.              }
36.              ?>
37.              </td>
38.          </tr>
39.      <?php endforeach ; ?>
40.      </table>
41. </div>

      第三步:操作结果界面!

2009-4-30 10-35-08

点“delete”链接,你会发现该行记录被成功删除!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值