首页 > 后端开发 > php教程 > Zend Framework框架中如何实现Ajax

Zend Framework框架中如何实现Ajax

小云云
发布: 2023-03-20 08:40:02
原创
1375 人浏览过

本文主要和大家介绍了Zend Framework框架中实现Ajax的方法,结合实例形式详细分析了Zend Framework框架中实现ajax功能的具体步骤与相关操作技巧,希望能帮助到大家。

开发平台:Windows XP SP2
测试平台:FreeBSD 7.0
开发工具:Netbeans 6.1
使用框架:Zend Framework 1.5.2
数据库: MySQL 5.0.51a

所需的数据库表和ZF相关目录以及文件:

一、表:


1

2

3

4

5

6

7

8

9

10

11

12

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 //入口文件


1

2

3

4

5

6

7

8

9

<?php

set_include_path(&#39;.&#39; . PATH_SEPARATOR .&#39;../library&#39; . PATH_SEPARATOR . get_include_path() . PATH_SEPARATOR . &#39;../application/modules/default/models&#39; . PATH_SEPARATOR . &#39;../application/modules/admin/models&#39;);

require_once &#39;Zend/Controller/Front.php&#39;;

require_once &#39;Zend/Controller/Router/Route.php&#39;;

$ctrl=Zend_Controller_Front::getInstance();

$ctrl->addModuleDirectory(&#39;../application/modules&#39;);

$ctrl->throwExceptions(true);

$ctrl->dispatch();

?>

登录后复制

2.TestDbCon.phhp //数据库连接文件


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

  require_once &#39;Zend/Db.php&#39;;

  require_once &#39;Zend/Registry.php&#39;;

  class TestDbCon{

    public static function getTestDbCon(){

      $params=array(

      &#39;host&#39;=>&#39;localhost&#39;,

      &#39;username&#39;=>&#39;root&#39;,

      &#39;password&#39;=>&#39;123456&#39;,

      &#39;dbname&#39;=>&#39;test&#39;

      );

      $con=Zend_Db::factory(&#39;Pdo_Mysql&#39;,$params);

      return $con;

    }

  }

?>

登录后复制

3.News.php //抽象出来的数据库表文件


1

2

3

4

5

6

7

8

9

10

11

12

<?php

/**

 * PHP Template.

 */

require_once &#39;Zend/Db/Table/Abstract.php&#39;;

class News extends Zend_Db_Table_Abstract{

  //  protected $_schema=&#39;test&#39;;

    protected $_name=&#39;news&#39;;

    protected $_primary=&#39;id&#39;;

    protected $_sequence=true;

}

?>

登录后复制

4.TestController.php //控制器


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<?php

  require_once &#39;Zend/Controller/Action.php&#39;;

  require_once &#39;Zend/View.php&#39;;

  require_once &#39;News.php&#39;;

  require_once &#39;TestDbCon.php&#39;;

  class TestController extends Zend_Controller_Action{

    public function ajaxAction(){

      $this->render();

    }

    public function getAjaxAction(){

//      $aaa=$_GET[&#39;q&#39;];

//      $this->view->sid=$_GET[&#39;sid&#39;];

      $aaa=$this->_request->getParam(&#39;q&#39;);

      $this->view->sid=$this->_request->getParam(&#39;sid&#39;);

      $conn=TestDbCon::getTestDbCon();

      $news_tb=new News(array(&#39;db&#39;=>$conn));

      $where=$news_tb->getAdapter()->quoteInto(&#39;title=?&#39;,$aaa);

      $this->view->rowSet=$news_tb->fetchAll($where);

      $this->render();

    }

  }

?>

登录后复制

5.ajax.phtml //客户操作页面,包含生成XMLHttpRequest对象,发ajax请求,处理请求,取回服务器返回值等


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<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>

<p id="resulte"><b>客户信息将在此处列出。</b></p>

</p>

登录后复制

6.get-ajax.phtml //最后根据由服务器取回的数据生成页面元素


1

2

3

4

5

6

7

8

9

10

11

12

<?php

  foreach($this->rowSet as $row){

    echo "<p>";

    echo "<ul>";

    echo "<li>";

    echo "id=".$row->id." title=".$row->title." add_time=".$row->add_time;

    echo "</li>";

    echo "</ul>";

    echo "</p>";

  }

 echo $this->sid;

?>

登录后复制

相关推荐:

Zend Framework数据库操作技巧总结

Zend Framework基于Command命令行建立ZF项目的方法

Zend Framework常用校验器详解

以上是Zend Framework框架中如何实现Ajax的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板