CakePHP中使用AJAX
使用 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.id | 16.username | 17.|
---|---|---|
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.
第三步:操作结果界面!
点“delete”链接,你会发现该行记录被成功删除!
补充说明:
“$this->render(’knownusers’,’ajax’);//使用render将数据返回给视图 ”
替代写法为:
$this->setAction(’knownusers’);//使用setAction将数据返回给视图
PHP之友评论