作者:小小贤 | 来源:互联网 | 2013-06-21 08:34
使用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.
id |
16.
username |
17. Actions
18.
19.
20.
21. $i= 0;
22. foreach($knownusers as$user):
23. ?>
24.
25.
26. $user['User']['id'] ?>
27. |
28.
29. $user['User']['username'] ?>
30. |
31.
32.
33. if( isset($ajax) ) {
34. echo$ajax->link('delete',array('action' =>'delete',$user['User']['id']),array('update' =>'knownusers' ));//在删除操作上,使用ajax方式发送请求!
35. }
36. ?>
37. |
38.
39.
40.
41.
第三步:操作结果界面!
点“delete”链接,你会发现该行记录被成功删除!
补充说明:
“$this->render(’knownusers’,’ajax’);//使用render将数据返回给视图 ”
替代写法为:
$this->setAction(’knownusers’);//使用setAction将数据返回给视图