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&amp;mysql(四)
Oct 09 PHP
php更改目录及子目录下所有的文件后缀的代码
Sep 24 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
Nov 15 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
PHP模版引擎原理、定义与用法实例
Mar 29 PHP
php实现的表单验证类完整示例
Aug 13 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实现获取并生成数据库字典的方法
2016/05/04 PHP
php封装的验证码类分享
2017/02/26 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
js 页面输出值
2008/11/30 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
从零学Python之入门(五)缩进和选择
2014/05/27 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
python怎么删除缓存文件
2020/07/19 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
《蜗牛》教学反思
2014/02/18 职场文书
安全生产实施方案
2014/02/23 职场文书
大三学习计划书范文
2014/05/02 职场文书
火灾现场处置方案
2014/05/28 职场文书
计算机专业求职信
2014/06/02 职场文书
好人好事演讲稿
2014/09/01 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书