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执行速度全攻略(下)
Oct 09 PHP
基于asp+ajax和数据库驱动的二级联动菜单
May 06 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
php获取当前页面完整URL地址
Dec 30 PHP
thinkPHP查询方式小结
Jan 09 PHP
PHP 绘制网站登录首页图片验证码
Apr 12 PHP
php解决DOM乱码的方法示例代码
Nov 20 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
PHP文件与目录操作示例
Dec 24 PHP
php中访问修饰符的知识点总结
Jan 27 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 gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
解析zend Framework如何自动加载类
2013/06/28 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
快速了解python leveldb
2018/01/18 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
实例讲解Python 迭代器与生成器
2020/07/08 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
小学六年级学生评语
2014/04/22 职场文书
我的小天地教学反思
2014/04/30 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
承诺书模板
2014/08/30 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
mysql数据库入门第一步之创建表
2021/05/14 MySQL
基于Redission的分布式锁实战
2022/08/14 Redis