Zend Framework框架中實現Ajax的方法示例
本文實例講述了Zend Framework框架中實現Ajax的方法。分享給大家供大家參考,具體如下:
開發(fā)平臺:Windows XP SP2
測試平臺:FreeBSD 7.0
開發(fā)工具: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對象,發(fā)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對象,發(fā)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優(yōu)秀開發(fā)框架總結》、《Yii框架入門及常用技巧總結》、《ThinkPHP入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Zend Framework框架的PHP程序設計有所幫助。
- 解決了Ajax、MySQL 和 Zend Framework 的亂碼問題
- ZendFramework2連接數據庫操作實例
- Zend Framework數據庫操作技巧總結
- Zend Framework入門應用實例詳解
- Zend Framework前端控制器用法示例
- Zend Framework路由器用法實例詳解
- Zend Framework分發(fā)器用法示例
- Zend Framework動作控制器用法示例
- Zend Framework處理Json數據方法詳解
- Zend Framework使用Zend_Loader組件動態(tài)加載文件和類用法詳解
- Zend Framework實現自定義過濾器的方法
- WINDOWS + WAMP + Zend Framework 配置步驟分享
相關文章
Thinkphp5框架實現圖片、音頻和視頻文件的上傳功能詳解
這篇文章主要介紹了Thinkphp5框架實現圖片、音頻和視頻文件的上傳功能,結合實例形式分析了thinkPHP5文件上傳的原理、操作步驟、實現方法及相關注意事項,需要的朋友可以參考下2019-08-08

