Zend Framework框架中实现Ajax的方法示例

2018-09-07 13:59

阅读:234

  本文实例讲述了Zend Framework框架中实现Ajax的方法。分享给大家供大家参考,具体如下:

  开发平台:Windows XP SP2
测试平台:FreeBSD 7.0
开发工具:Netbeans 6.1
使用框架:Zend Framework 1.5.2
数据库: MySQL 5.0.51a

  所需的数据库表和ZF相关目录以及文件:

  一、表:

   mysql> select * from news; +----+-------+---------------------+ id title add_time +----+-------+---------------------+ 22 rot 2008-01-04 00:00:00 23 aaa 2008-01-04 00:00:00 24 rot 2008-01-04 00:00:00 29 dfeew 2008-02-27 00:00:00 26 jesse 2008-02-27 00:00:00 27 andle 2008-02-27 00:00:00 28 andle 2008-02-27 00:00:00 +----+-------+---------------------+

  二、目录:

  三、相关文件:

  2.TestDbCon.phhp //数据库连接文件

  3.News.php //抽象出来的数据库表文件

  4.TestController.php //控制器

  5.ajax.phtml //客户操作页面,包含生成XMLHttpRequest对象,发ajax请求,处理请求,取回服务器返回值等

  6.get-ajax.phtml //最后根据由服务器取回的数据生成页面元素

  相关文件内容:

  1.index.php //入口文件

   <?php set_include_path(. . PATH_SEPARATOR .../library . PATH_SEPARATOR . get_include_path() . PATH_SEPARATOR . ../application/modules/default/models . PATH_SEPARATOR . ../application/modules/admin/models); require_once Zend/Controller/Front.php; require_once Zend/Controller/Router/Route.php; $ctrl=Zend_Controller_Front::getInstance(); $ctrl->addModuleDirectory(../application/modules); $ctrl->throwExceptions(true); $ctrl->dispatch(); ?>

  2.TestDbCon.phhp //数据库连接文件

   <?php require_once Zend/Db.php; require_once Zend/Registry.php; class TestDbCon{ public static function getTestDbCon(){ $params=array( host=>localhost, username=>root, password=>123456, dbname=>test ); $con=Zend_Db::factory(Pdo_Mysql,$params); return $con; } } ?>

  3.News.php //抽象出来的数据库表文件

   <?php /** * PHP Template. */ require_once Zend/Db/Table/Abstract.php; class News extends Zend_Db_Table_Abstract{ // protected $_schema=test; protected $_name=news; protected $_primary=id; protected $_sequence=true; } ?>

  4.TestController.php //控制器

   <?php require_once Zend/Controller/Action.php; require_once Zend/View.php; require_once News.php; require_once TestDbCon.php; class TestController extends Zend_Controller_Action{ public function ajaxAction(){ $this->render(); } public function getAjaxAction(){ // $aaa=$_GET[q]; // $this->view->sid=$_GET[sid]; $aaa=$this->_request->getParam(q); $this->view->sid=$this->_request->getParam(sid); $conn=TestDbCon::getTestDbCon(); $news_tb=new News(array(db=>$conn)); $where=$news_tb->getAdapter()->quoteInto(title=?,$aaa); $this->view->rowSet=$news_tb->fetchAll($where); $this->render(); } } ?>

  5.ajax.phtml //客户操作页面,包含生成XMLHttpRequest对象,发ajax请求,处理请求,取回服务器返回值等

   <script type=text/javascript> var xmlHttp function showValue(str) { xmlHttp=getXmlHttpObject(); if (xmlHttp==null) { alert (您的浏览器不支持AJAX.); return; } var url=/test/get-ajax; url=url+/q/+str; url=url+/sid/+Math.random(); xmlHttp.onreadystatechange=stateChanged; xmlHttp.open(GET,url,true); xmlHttp.send(null); } function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById(resulte).innerHTML=xmlHttp.responseText; } } function getXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject(Msxml2.XMLHTTP); } catch (e) { xmlHttp=new ActiveXObject(Microsoft.XMLHTTP); } } return xmlHttp; } </script> <form> 请选择一位客户: <select name=customers onchange=showValue(this.value)> <option value=rot>rot</option> <option value=aaa>aaa</option> <option value=jesse>jesse</option> <option value=andle>andle</option> </select> </form> <p> <div id=resulte><b>客户信息将在此处列出。</b></div> </p>

  6.get-ajax.phtml //最后根据由服务器取回的数据生成页面元素

   <?php foreach($this->rowSet as $row){ echo <div>; echo <ul>; echo <li>; echo id=.$row->id. title=.$row->title. add_time=.$row->add_time; echo </li>; echo </ul>; echo </div>; } echo $this->sid; ?>

  更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

  希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。


评论


亲,登录后才可以留言!