Maison >développement back-end >tutoriel php >Comment implémenter Ajax dans Zend Framework
Cet article présente principalement la méthode d'implémentation d'Ajax dans le framework Zend Framework. Il analyse en détail les étapes spécifiques et les compétences opérationnelles associées à l'implémentation de la fonction ajax dans le framework Zend Framework sous forme d'exemples. à cela
L'exemple de cet article décrit la méthode d'implémentation d'Ajax dans le framework Zend Framework. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Plateforme de développement : Windows XP SP2
Plateforme de test : FreeBSD 7.0
Outils de développement : Netbeans 6.1
Utilisation du framework : Zend Framework 1.5.2
Base de données : MySQL 5.0.51a
Tables de base de données requises et répertoires et fichiers associés à ZF :
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 | +----+-------+---------------------+
2. Annuaire :
3. :
1.index.php //Fichier d'entrée
2.TestDbCon.phhp //Fichier de connexion à la base de données
3.News.php / /Résumé Le fichier de table de base de données qui sort
4.TestController.php //Controller
5.ajax.phtml //Page d'opération du client, y compris la génération d'un objet XMLHttpRequest, l'envoi d'une requête ajax, le traitement requête, récupération des valeurs de retour au serveur, etc.
6.get-ajax.phtml //Générer enfin des éléments de page en fonction des données récupérées du serveur
Connexe contenu du fichier :
1.index.php //Fichier d'entrée
<?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 //Fichier de connexion à la base de données
<?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 //Fichier de table de base de données abstraite
<?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 //Controller
<?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 //Page d'opération client, y compris la génération de XMLHttpRequest objet et envoi de la requête ajax, Traiter la requête, récupérer la valeur de retour du serveur, 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>
6.get-ajax.phtml // Générer enfin des éléments de page en fonction des données récupérées du serveur
<?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; ?>
C'est tout pour cet article. L'intégralité du contenu, j'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Zend Opérations de base de données Zend_Db dans Framework
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!