本文实例讲述了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(); } }?>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程序设计有所帮助。