Maison >développement back-end >tutoriel php >Comment implémenter Ajax dans Zend Framework
Cet article vous 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 techniques de fonctionnement associées à l'implémentation de la fonction ajax dans le framework Zend Framework sous forme d'exemples. peut aider tout le monde.
Plateforme de développement : Windows >
Tables de base de données requises et répertoires et fichiers associés à ZF :
2. Annuaire :
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 | +----+-------+---------------------+
3. Documents associés :
1.index.php //Fichier d'entrée2.TestDbCon.phhp //Fichier de connexion à la base de données
3 .News.php //Fichier de table de base de données abstraite 4.TestController.php //Controller5.ajax.phtml //Page d'opération client, y compris la génération d'un objet XMLHttpRequest, l'envoi d'une requête ajax, traitement de la demande et récupération de la valeur de retour du serveur, etc. 6.get-ajax.phtml // Générez enfin des éléments de page en fonction des données récupérées du serveurContenu du fichier associé :
1.index.php //Fichier d'entrée2.TestDbCon.phhp //Fichier de connexion à la base de données
<?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(); ?>3.News.php //Fichier de table de base de données abstraite
<?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; } } ?>4.TestController.php / /Controller
<?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; } ?>5.ajax.phtml //Page d'opération client, y compris la génération d'objets XMLHttpRequest, l'envoi de requêtes ajax, le traitement des requêtes, la récupération des valeurs de retour du serveur, etc.
<?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(); } } ?>6.get-ajax.phtml //Générer enfin des éléments de page en fonction des données récupérées du serveur
<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>Recommandations associées :
<?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; ?>
Méthode de Zend Framework pour établir un projet ZF basé sur la ligne de commande
Explication détaillée des validateurs couramment utilisés dans Zend 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!