您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Zend Framework框架中如何實(shí)現(xiàn)Ajax的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
具體如下:
開發(fā)平臺(tái):Windows XP SP2
測(cè)試平臺(tái):FreeBSD 7.0
開發(fā)工具:Netbeans 6.1
使用框架:Zend Framework 1.5.2
數(shù)據(jù)庫(kù): MySQL 5.0.51a
所需的數(shù)據(jù)庫(kù)表和ZF相關(guān)目錄以及文件:
一、表:
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 | +----+-------+---------------------+
二、目錄:
三、相關(guān)文件:
1.index.php //入口文件
2.TestDbCon.phhp //數(shù)據(jù)庫(kù)連接文件
3.News.php //抽象出來(lái)的數(shù)據(jù)庫(kù)表文件
4.TestController.php //控制器
5.ajax.phtml //客戶操作頁(yè)面,包含生成XMLHttpRequest對(duì)象,發(fā)ajax請(qǐng)求,處理請(qǐng)求,取回服務(wù)器返回值等
6.get-ajax.phtml //最后根據(jù)由服務(wù)器取回的數(shù)據(jù)生成頁(yè)面元素
相關(guān)文件內(nèi)容:
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 //數(shù)據(jù)庫(kù)連接文件
<?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 //抽象出來(lái)的數(shù)據(jù)庫(kù)表文件
<?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 //客戶操作頁(yè)面,包含生成XMLHttpRequest對(duì)象,發(fā)ajax請(qǐng)求,處理請(qǐng)求,取回服務(wù)器返回值等
<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> 請(qǐng)選擇一位客戶: <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 //最后根據(jù)由服務(wù)器取回的數(shù)據(jù)生成頁(yè)面元素
<?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; ?>
感謝各位的閱讀!關(guān)于“Zend Framework框架中如何實(shí)現(xiàn)Ajax”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。