Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
ici j'ai modifier un tutoriel Web 2.0, allez plus loin avec AJAX et XMLHttpRequest,
http://siddh.developpez.com/articles/ajax/ pour l’intégrer a zend framework.
dans le dossier public créer un dossier /public/js/. puis créer un fichier /publi/js/ajax.js et y ajouter le code suivant:
function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ alert(xhr.responseText); } } xhr.open("POST","index/ajax",true); xhr.send(null); }
maintenant dans le controlleur index créer l'action ajax:
public function ajaxAction() { $this->view->msg = "bonjour"; }
puis dans la vue ajax.phtml ajouter le code suivant:
<?php echo $this->msg; ?>
en fin dans la vue index.phtml ajouter le code suivant:
<html> <head> <title>débuter avec ajax sous zend</title> <?php echo $this->headScript()->appendFile('./js/ajax.js'); ?> </head> <body> <input type='button' value='Dis quelque chose !' onclick='go()' /> <div id='mydiv'> </div> </body> </html>
et voila une fois vous cliquer sur le bouton 'Dis quelque chose !' vous aurez un message d'ajax 'bonjour'.
comme ça vous pouvez le modifier ou continuer la suite du tutoriel http://siddh.developpez.com/articles/ajax/ pour allez plus loin.
Dernière modification par wemalo (10-10-2011 11:42:53)
Hors ligne
bonjour
sur le forum utilise les balise BBcode (il y a un lien en bas de l'éditeur)
ça permet de rendre le code source plus lisible
comme ça
j'utilise le framework ExtJS/Sencha pour faire de l'ajax
l'inclusion dans le HTML reste identique à ce qu'on fait dans n'importe quel site et ne dépends pas de ZF (tout comme la première parte de ton exemple)
ensuite dans des contrôleurs j'ai des action spécifiquement définies pour les appels Ajax
j'utilise toujours la même structure de réponse
en JSON (le plus souvent mais parfois sur certain projet en XML)
{ success: true, users: [ {id: 1, name: 'Ed', email: 'ed@sencha.com'}, {id: 2, name: 'Tommy', email: 'tommy@sencha.com'} ] }
souvent la structure s'agrémente d'attribut complémentaire.
{ success: true, rows: 2, count: 2, users: [ {id: 1, name: 'Ed', email: 'ed@sencha.com'}, {id: 2, name: 'Tommy', email: 'tommy@sencha.com'} ] }
rows est le nombre d'élément total et count le nombre d'éléments retournés cela permet de gérer la pagination
de même en cas d'erreur l'utilise le format
{ success: false, msg: "ceci est un message d'erreur", data: "Ici tout ce qui peut aider l'utilisateur" debug: "si l'appli est en mode débug ici se trouve tout ce qui peut aider à déboger" }
ainsi mon code js est toujours le même. l'appel est standardisé, le traitement de la réponse aussi. reste juste à utiliser les données.
côte php c'est pareil. la constitution de la réponse est toujours la même, le traitement des erreurs aussi. reste donc à se concentrer sur le traitement de l'action.
j'ai ainsi pu me faire des classes qui font ça pour tout mes controleurs JSON
si tu veux je peux te trouver un exemple de code plus complet et te l'envoyer (c'est relativement gros)
A+JYT
Hors ligne
bonjour,
tout d'abord merci pour les conseils.
je trouve que ce que tu fait avec ExtJS intéressant, c'est plus structuré que AJAX. et surtout qu'il est indépendant de ZF.
je vais m'orienter vers EXtJS, mais avant de commencé je doit m'assurer s'il vas me permettre de réalisé une application de chat (messagerie instantanée).
si vous avez surtout une idée, ou un exemple vers ce sens, je serai très reconnaissant.
Dernière modification par wemalo (28-08-2011 05:05:16)
Hors ligne
Tu peux trouver pleins de tutoriels de chat avec jQuery, et il se trouve que tu peux intégrer ZendX_Jquery facilement, te permettant de disposer de fonctions ajax simples d'utilisation.
Hors ligne
Tiens je ne savais pas qu'il y avait des classes pour "wrapper" le cours jQuery pour débuter en Zend, merci pour l'info.
Dernière modification par Vivalamuerte (14-02-2013 22:30:21)
Hors ligne