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,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
PHP下对字符串的递增运算代码
Aug 21 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
Jul 14 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
php session的锁和并发
Jan 22 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
PHP的开合式多级菜单程序
2006/10/09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
2009/08/07 PHP
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
PHP 学习路线与时间表
2010/02/21 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
功能强大的php分页函数
2016/07/20 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
python实现bitmap数据结构详解
2014/02/17 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python3字符串学习教程
2015/08/20 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
Python生成器常见问题及解决方案
2020/03/21 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
促销活动策划方案
2014/01/12 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
信访工作个人总结
2015/03/03 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
房屋所有权证明
2015/06/19 职场文书