IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Utiliser script de vue sans render


Sujet :

MVC PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 333
    Par défaut Utiliser script de vue sans render
    Bonjour,


    Est-ce que par hasard il serait possible d'utiliser un fichier de vues (en lui passant des variables), SANS render ? C'est dans le cadre d'une requête AJAX, et je ne veux absolument rien d'autre qu'une chaîne encodée JSON, contenant éventuellement le résultat de ce fichier de vue.



    Merci

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 503
    Par défaut
    Bonjour,

    Vous pouvez supprimer le rendu de la vue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $this->_helper->viewRenderer->setNoRender();

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 333
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bonjour,

    Vous pouvez supprimer le rendu de la vue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           $this->_helper->viewRenderer->setNoRender();

    Non, j'ai toujours quelque chose à la sortie, à partir du moment où j'appelle render('new-row') dans mon contrôleur j'ai forcément un rendu envoyé à JavaScript (ce qui est logique en même temps). C'est pour ça que j'aimerais savoir s'il existe une combine pour passer outre

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 178
    Par défaut
    Hello,

    normalement tu peux utiliser le helper json

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_helper->json($datas);
    si tu veux mettre le résultat d'un render dans les datas json il me semble que l'appel à $this->render() te renvoit le rendu.

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 503
    Par défaut
    Supprime alors toutes informations.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->_helper->resetHelpers();

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 118
    Par défaut
    Bonjour,

    Pour les requêtes AJAX, place dans ton init() du controller le code suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function init () {
    //si requete ajax on désactive les layouts et le rendu
      if($this->_request->isXmlHttpRequest()){
            $this->_helper->layout->disableLayout();
            $this->_helper->viewRenderer->setNoRender(true);
            $this->_helper->viewRenderer->setNeverRender(true);
      }
    }
    Zend_Controller_Action_Helper_ViewRenderer
    - setNoRender(true) désactive le rendu pour l'action en cours.
    - setNeverRender(true) désactive définitivement le rendu pour tous les actions du controller

    On peut également désactiver le layout.
    - disableLayout()

    Dans tes actions quand tu utilises l'aide d'action json le rendu est désactivé par défaut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Je renvoie ce tableau à ma vue au format JSON
    $this->_helper->json($DataArray
                                    , array(
                                   		'enableJsonExprFinder' => true
                                              )
                                );

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/12/2006, 09h31
  2. Vue sans union / performance
    Par crazykangourou dans le forum Oracle
    Réponses: 8
    Dernier message: 27/11/2006, 18h37
  3. utilisation d'une vue sous Firebird
    Par richard038 dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/09/2006, 13h59
  4. Réponses: 3
    Dernier message: 04/05/2006, 14h59
  5. Comment utiliser une BDD GDB sans installer interbase ?
    Par QAYS dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2006, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo