php教程

超轻量级php框架startmvc

Zend Framework框架中实现Ajax的方法示例

更新时间:2020-03-21 15:23:13 作者:startmvc
本文实例讲述了ZendFramework框架中实现Ajax的方法。分享给大家供大家参考,具体如下:开发

本文实例讲述了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 //入口文件


<?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对象,发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 Framework 框架 Ajax