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


Posted in PHP onJune 27, 2017

本文实例讲述了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 |
+----+-------+---------------------+

二、目录:

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

三、相关文件:

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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP连接MySQL代码的参数说明
Jun 07 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
yii中widget的用法
Dec 03 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 PHP
php适配器模式简单应用示例
Oct 23 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 #PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 #PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 #PHP
简单谈谈PHP面向对象之标识对象
Jun 27 #PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 #PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 #PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 #PHP
You might like
php 批量替换程序的具体实现代码
2013/10/04 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
使用ES6语法重构React代码详解
2017/05/09 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
python八大排序算法速度实例对比
2017/12/06 Python
python selenium 弹出框处理的实现
2019/02/26 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
英语道歉信范文
2014/01/09 职场文书
家长通知书教师评语
2014/04/17 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
Java中try catch处理异常示例
2021/12/06 Java/Android
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android