热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CakePHP中使用AJAX

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

      第一步:控制器部分!

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

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

      控制器方法部分代码:

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

01.functiondelete($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.
02.
03.
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. 
11.  
12.
13.    
14.    
15.        
16.        
17.        Actions
18.    
19.    
20.  
21.        $i= 0;
22.        foreach($knownusers as$user):
23.    ?>
24.        
25.            
28.            
31.            
38.        
39.    
40.    
id username
26.                 $user['User']['id'] ?>
27.            
29.                 $user['User']['username'] ?>
30.            
32.            
33.            if( isset($ajax) ) {
34.                echo$ajax->link('delete',array('action' =>'delete',$user['User']['id']),array('update' =>'knownusers' ));//在删除操作上,使用ajax方式发送请求!
35.            }
36.            ?>
37.            
41.

      第三步:操作结果界面!

2009-4-30 10-35-08

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

补充说明:
“$this->render(’knownusers’,’ajax’);//使用render将数据返回给视图 ”
替代写法为:
$this->setAction(’knownusers’);//使用setAction将数据返回给视图


推荐阅读
author-avatar
小小贤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有