本文实例讲述了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 |+----+-------+---------------------+
二、目录:
三、相关文件:
1.index.php //入口文件
2.TestDbCon.phhp //数据库连接文件
3.News.php //抽象出来的数据库表文件
4.TestController.php //控制器
5.ajax.phtml //客户操作页面,包含生成XMLHttpRequest对象,发ajax请求,处理请求,取回服务器返回值等
6.get-ajax.phtml //最后根据由服务器取回的数据生成页面元素
相关文件内容:
1.index.php //入口文件
<?phpset_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(); } }?>
新闻热点
疑难解答