Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-08-2011 01:10:32

wemalo
Membre
Date d'inscription: 31-07-2011
Messages: 55

Débuter avec ajax sous zend framework.

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:

Code:

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:
   

Code:

public function ajaxAction()
    {
        $this->view->msg = "bonjour";
    }

puis dans la vue ajax.phtml ajouter le code suivant:

Code:

<?php echo $this->msg; ?>

en fin dans la vue index.phtml ajouter le code suivant:

Code:

<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

 

#2 27-08-2011 12:16:13

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: Débuter avec ajax sous zend framework.

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

Code:

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)

Code:

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

Code:

{
    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

Code:

{
    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

 

#3 27-08-2011 16:25:01

wemalo
Membre
Date d'inscription: 31-07-2011
Messages: 55

Re: Débuter avec ajax sous zend framework.

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

 

#4 29-08-2011 09:25:14

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: Débuter avec ajax sous zend framework.

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

 

#5 22-05-2012 18:00:00

Vivalamuerte
Nouveau membre
Date d'inscription: 21-07-2010
Messages: 1

Re: Débuter avec ajax sous zend framework.

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages