This article mainly introduces the method of implementing Ajax in the Zend Framework framework. It analyzes in detail the specific steps and related operating skills of implementing the ajax function in the Zend Framework framework in the form of examples. Friends in need can refer to it
The example in this article describes the method of implementing Ajax in the Zend Framework framework. Share it with everyone for your reference, the details are as follows:
Development platform: Windows XP SP2
Testing platform: FreeBSD 7.0
Development tools: Netbeans 6.1
Using framework: Zend Framework 1.5.2
Database: MySQL 5.0.51a
Required database tables and ZF related directories and files:
1. Table:
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 | +----+-------+---------------------+
2. Directory:
## 3. Related files:
1.index.php //Entry file2.TestDbCon.phhp //Database connection file3.News.php //Abstracted Database table file4.TestController.php //Controller5.ajax.phtml //Customer operation page, including generating XMLHttpRequest object, sending ajax request, processing the request, and retrieving the server Return value, etc.6.get-ajax.phtml //Finally generate page elements based on the data retrieved from the serverRelated file content:
1.index.php //Entry file<?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(); ?>
<?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; } } ?>
<?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; } ?>
<?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(); } } ?>
<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>
<?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; ?>
Zend Zend_Db database operation in Framework
The above is the detailed content of How to implement Ajax in Zend Framework. For more information, please follow other related articles on the PHP Chinese website!