Home > Backend Development > PHP Tutorial > How to implement Ajax in Zend Framework

How to implement Ajax in Zend Framework

小云云
Release: 2023-03-20 08:40:02
Original
1324 people have browsed it

This article mainly introduces the method of implementing Ajax in the Zend Framework framework, and analyzes in detail the specific steps and related operating techniques to implement the ajax function in the Zend Framework framework in the form of examples. I hope it can help everyone.

Development platform: Windows XP SP2
Testing platform: FreeBSD 7.0
Development tools: Netbeans 6.1
Using framework: Zend Framework 1.5.2
Database: MySQL 5.0.51a

Required database tables and ZF related directories and files:

1. Table:


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 |
+----+-------+---------------------+
Copy after login

2. Directory:

##3. Related files:

1.index.php //Entry file

2.TestDbCon.phhp //Database connection file

3.News.php //Abstract database Table file

4.TestController.php //Controller

5.ajax.phtml //Customer operation page, including generating XMLHttpRequest object, sending ajax request, processing the request, and getting back from the server Value etc.

6.get-ajax.phtml //Finally generate page elements based on the data retrieved from the server

Related file content:

1.index.php //Entry file


<?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();
?>
Copy after login

2.TestDbCon.phhp //Database connection file


<?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;
    }
  }
?>
Copy after login

3.News.php //Abstract database table file


<?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;
}
?>
Copy after login

4.TestController.php //Controller


<?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();
    }
  }
?>
Copy after login

5.ajax.phtml //Customer operation page, including generating XMLHttpRequest objects, sending ajax requests, processing requests, retrieving server return values, etc.


<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>
Copy after login

6.get-ajax.phtml //Finally generate page elements based on the data retrieved from the server


<?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;
?>
Copy after login
Related recommendations:

Zend Framework Summary of database operation skills

Zend Framework’s method of establishing a ZF project based on the Command line

Detailed explanation of commonly used verifiers in Zend Framework

The above is the detailed content of How to implement Ajax in Zend Framework. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template