ホームページ >バックエンド開発 >PHPチュートリアル >Zend Framework で Ajax を実装する方法
この記事では、Zend Framework フレームワークに Ajax を実装する方法を主に紹介し、Zend Framework フレームワークに ajax 機能を実装するための具体的な手順と関連する操作テクニックを例とともに詳細に分析します。
# #この記事の例では、Zend Framework フレームワークに Ajax を実装する方法について説明します。参考までに皆さんと共有してください。詳細は次のとおりです。 開発プラットフォーム: Windows XP SP2テスト プラットフォーム: FreeBSD 7.0
開発ツール: Netbeans 6.1
使用フレームワーク: Zend Framework 1.5.2
データベース: MySQL 5.0.51a
1。 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 |
+----+-------+---------------------+
## 3. 関連ファイル:
1.index.php //エントリファイル2.TestDbCon.php //データベース接続ファイル
3.News.php //抽象化されたデータベーステーブル ファイル
4.TestController.php //Controller
5.ajax.phtml //XMLHttpRequest オブジェクトの生成、Ajax リクエストの送信、リクエストの処理、サーバーの取得を含む顧客操作ページ Return値など
#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.php //データベース接続ファイル
<?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 //Controller
<?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> <p id="resulte"><b>客户信息将在此处列出。</b></p> </p>
6.get-ajax.phtml //最後にサーバーから取得したデータに基づいてページ要素を生成します
<?php foreach($this->rowSet as $row){ echo "<p>"; echo "<ul>"; echo "<li>"; echo "id=".$row->id." title=".$row->title." add_time=".$row->add_time; echo "</li>"; echo "</ul>"; echo "</p>"; } echo $this->sid; ?>
上記がこの記事の全内容です。お役に立てば幸いです。詳細については、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
Zend Framework での Zend_Db データベース操作
以上がZend Framework で Ajax を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。