分享

简单谈谈Zend Framework结合ajax开发

 sumi2005 2012-05-19
很早就想些一些关于zf和ajax结合的文章了,恰好最近论坛上有人问,今天又有空,那就写了一下,希望能起到抛砖引玉的作用。
  ajax的基本使用和zf的配置我就不多说了,不熟悉的自己参考相应的文章。在这里我是使用prototype进行二次开发的。
   首先看一下/js/ajax_test.js文件的代码:(主要是处理ajax,有详细注释)
 
 

//测试ajax+zf
/**
作者:许立强<[email=feifengxlq@hotmail.com]feifengxlq@hotmail.com[/email]>[url=http://www./xlq/]http://www./xlq/[/url]
时间:2006-9-28
注意:是在使用prototype的基础上封装的
*/
var global_targetid;
//当ajax在loading数据的时候,显示该界面
function ajax_load()
{
return "<div align='center'>正在载入,Loading.......</div>";
}
//获取指定URL地址的内容并显示到指定targetid的标签上显示
function ajax_get(url,targetid)
{
global_targetid=targetid
var myajax=new Ajax.Request(url,{method:'get',parameters:'',onComplete:show_ajax_get_rs});
document.getElementById(targetid).innerHTML=ajax_load();
}
function show_ajax_get_rs(myajax)
{
if(myajax.readyState==4 && myajax.status==200)
{
  document.getElementById(global_targetid).innerHTML=myajax.responseText;
}


    

然后是/app/viewer/test/ajax_test.php,是显示层。'
 

   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url=http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd]http://www./TR/xhtml1/DTD/ ... l.dtd">[/url]
<html xmlns="[url=http://www./1999/xhtml]http://www./1999/xhtml">[/url]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script language="javascript" src="/zend/js/prototype.js"></script>
<script language="javascript" src="/zend/js/ajax_test.js"></script>
<body >
<h1>以下内容为AJAX测试显示内容
</h1><div id="ajax_test_show"></div>
<p><a href="javascript:ajax_get('/zend/index.php/test/page/','ajax_test_show')">上一页</a><a href="javascript:ajax_get('/zend/index.php/test/nextpage/','ajax_test_show')">下一页</a></p>
</body>
</html> 


   

最后是数据控制层。/app/controller/testController.php文件的主要代码。(很简单,应该能看懂的^_^)
 


<?
class testController extends Zend_Controller_Action
{
private 
$viewer;

public function 
__construct(){
     
$this->viewer=Zend::registry('viewer');
}

public function 
indexAction(){
     echo 
$this->viewer->render('test/ajax_test.php');
}

public function 
pageAction(){
     
header("Cache-Control: no-cache, must-revalidate");
     
header('Content-type: text/html;charset=GB2312');
     for(
$i=0;$i<10;$i++)
       echo 
"这是第一个页面
"
;
}

public function 
nextpageAction(){
     
header("Cache-Control: no-cache, must-revalidate");
     
header('Content-type: text/html;charset=GB2312');
     for(
$i=0;$i<10;$i++)
       echo 
"这是第二个页面
"
;
}
}
?> 

这样就实现了一个基本的ajax功能,稍微修改下,就可以做成ajax分页的功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多