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

Zend Framework PHP Discussion :

Requête AJAX qui renvoie le layout


Sujet :

Zend Framework PHP

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut Requête AJAX qui renvoie le layout
    tout le monde !
    j'ai un petit soucis avec une requête ajax,
    je m'explique :
    Avec un contrôle de firebug, la requête fonctionne parfaitement sur les autres pages.
    lorsque j'arrive sur la page qui est censée utiliser cette requête, toutes mes requètes ajax me renvoient le layout ... ??

    Quand je tente ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/xxxx/ajax/comfac
    ou encore ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/xxxx/ajax/comfac/id/2
    j'ai les bon résultats !

    C'est assez tordu à expliquer et à comprendre, je l'avoue, si je peut fournir d'autre informations n'hésitez pas !


    Quelqu'un a-t-il une idée ??

    Beaucoup !!!

  2. #2
    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
    Cyrux,

    Pour désactiver le layout du MVC dans ton code pour une action d'un controller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->_helper->layout->disableLayout();

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut Effectivement
    Merci de ta réponse si rapide !!

    Pour ta solution, effectivement, je l'avais utilisée avant de poster,
    Je l'ai utilisée de cette manière :
    dans ma première requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function fournisseurcomfacAction() 
    	{
    		// désactive le rendu de vue et layout
            if($this->_request->isXmlHttpRequest())
    		{
    	        $this->_helper->layout->disableLayout();
                $this->_helper->viewRenderer->setNoRender(true);
            }
            ...
    et dans la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function monfournisseurcomfacAction() 
    	{
    		// désactive le layout
            if($this->_request->isXmlHttpRequest())
    		{
    	        $this->_helper->layout->disableLayout();
            }
     
    		// Récupère le numéro du fournisseur	
    		$array = $this->_request->getParam('id');
             ...
    Ces fonctions sont déjà utilisée ailleurs et fonctionnent parfaitement !!
    ce que je ne saisi pas, c'est pourquoi cela arrive uniquement sur la page concernée ...

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    J'ai fais quelques tests, et même en ne laissant que ceci dans ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
    	<head>
    		<title>
    			<?php echo $this->escape($this->title); ?>
    		</title>
    	</head>
    </html>
    J'ai encore l'intégralité du layout qui m'est retournée

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    J'ai tenté en retirant completement cette ligne de mon layout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $this->layout()->content; ?>
    mais le layout reste toujours dans ce qui m'est retourné par la requête.
    c'est invraisemblable !!

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Personne n'a d'idées ???

    Ce qui est incroyable c'est que sur ma page index ainsi que sur toutes mes autres pages, les requêtes dont j'ai besoin fonctionnent sans le moindre soucis.
    (testé avec firebug).
    Mais quand j'accède à la page censé les utiliser, tout foire !!!!!

    Va comprendre pourquoi !

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    On peut voir l'action "comfac" ?

  8. #8
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    pas de soucis la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function comfacAction()
    {
           $this->view->title = "Ajout de pieces pour une commande";
           $form = new FormulaireComfac();
           $form->submit->setLabel('Ajouter !');
           $this->view->form = $form;
           $numero_commande = $this->_request->id;
    }

  9. #9
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    je ne vois pas dans ton action la commande ?

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

  10. #10
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    excuse moi, je viens de me rendre compte que je t'ai envoyé l'action comfac de l'indexController et non de l'ajaxcontroller, toutes mes excuses ...

    Voici l'ajax controller :
    Ces actions concernent les suggestbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public function fournisseurcomfacAction() 
    	{
    		// désactive le rendu de vue et layout
            if($this->_request->isXmlHttpRequest())
    		{
    	        $this->_helper->layout->disableLayout();
                $this->_helper->viewRenderer->setNoRender(true);
            }
     
    		$TFournisseurs = new TFournisseurs;
     
    		$Fournisseurs = $TFournisseurs->selectData();
     
    		foreach ($Fournisseurs as $Fournisseur) 
    		{
    			$list[] = array(  'id'=> $Fournisseur->numero_fournisseur, 'text'=> $Fournisseur->nom_fournisseur);
    		}
    		$this->_helper->json($list, array('enableJsonExprFinder' => true));
        } 
     
    public function monfournisseurcomfacAction() 
    	{
    		// désactive le layout
            if($this->_request->isXmlHttpRequest())
    		{
    	        $this->_helper->layout->disableLayout();
            }
     
    		$array = $this->_request->getParam('id');
    		$numero_fournisseur = $array[0];
     
     		$TPieces = new TPieces;
    		$Pieces = $TPieces->selectDataByFournisseur($numero_fournisseur);
     
    		$html = ' 
    		<table>
    			<tr>
    				<th>Num&eacute;ro</th>
    				<th>Libellé</th>
    				</tr>
    		';	
     
    	foreach($Pieces as $piece) {
    		$numero_piece = $piece->numero_piece;
    		$html .= '<tr>';
    		$html .= '<td>'.$piece->numero_piece.'</td>';
    		$html .= '<td>'.$piece->libelle_piece.'</td>';
    		$html .= '<td>';
    		$html .= '<input type="radio" name="selectionner" value="'.$numero_prestation.'" id="selectionner" />';
    		$html .= '</td>';
    		$html .= '</tr>';
    	}
     
    		$html .= '</table>';
     
    		// Assignation de mes différents éléments à ma vue
    		$this->view->html = $html;
     
    		// Appel automatique de ma vue
     
    	}//Eof:: monfournisseurcomfacAction

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    dans ton uri ici http://localhost/xxxx/ajax/comfac/id/2

    tu fais bien appelle a l'action "comfac" de AjaxController, hors je ne vois pas ce code ?

  12. #12
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Effectivement j'ai la aussi fait une erreur, j'ai copié collé la mauvaise uri ... décidément !!

    voici la bonne :
    http://localhost/XXXXXXX/ajax/fournisseurcomfac/id/2

    quand je rentre ceci dans mon champs d'adresse, il me retourne la liste complète des fournisseurs, ce qui est parfait ...

  13. #13
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    Donc plus de soucis alors ?

  14. #14
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    sisi, le problème est toujours la, j'ai simplement copié la mauvais adresse sur le forum, c'est pour cela que c'est incompréhensible.

    j'ai 3 ou 4 fois le même schéma qui fonctionne ailleurs dans mon code ...

  15. #15
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    et sans le if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public function fournisseurcomfacAction() 
    	{
    		// désactive le rendu de vue et layout
           // if($this->_request->isXmlHttpRequest())
    		{
    	        $this->_helper->layout->disableLayout();
                    $this->_helper->viewRenderer->setNoRender();
            //}
     
    		$TFournisseurs = new TFournisseurs;
     
    		$Fournisseurs = $TFournisseurs->selectData();
     
    		foreach ($Fournisseurs as $Fournisseur) 
    		{
    			$list[] = array(  'id'=> $Fournisseur->numero_fournisseur, 'text'=> $Fournisseur->nom_fournisseur);
    		}
    		$this->_helper->json($list, array('enableJsonExprFinder' => true));
        }

  16. #16
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Toujours pareil !

    Ce que je ne comprends pas, c'est pourquoi cela fonctionne sur les autres pages et pas sur celle la ??
    De mon index jusque la page précédente l'a requête est parfaite
    et sur la page en question, j'ai dans mon firebug (et pour toutes mes requetes ajax) le code du layout qui m'est retourné ...

  17. #17
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    la page fournisseurcomfac.phtml n'existe pas ?

  18. #18
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    Elle existe bien :
    la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo $this->html;
    ?>
    elle se situe :
    C:\wamp\www\XXXXXXX\application\views\scripts\ajax\fournisseurcomfac.phtml

  19. #19
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    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 506
    Par défaut
    Bon alors,

    A quoi te sert cette vue, puisque tu veux la supprimer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $this->_helper->viewRenderer->setNoRender();
    de plus tu ne retourne pas de données de vue

    dans ton controller.

    Tu fais des mélanges entre tes actions .....

  20. #20
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Par défaut
    J'ai toujours fait de cette manière, je dois simplement afficher les résultats de ma suggestbox dans ma page sans la recharger.

    je ne comprends pas bien ou je m'égare ??

    j'ai suivi ceci :
    http://www.developpez.net/forums/d95...echerche-page/

    sa t'aidera peut être, je vais voir pour tout recoder, si tu ne vois pas ...

    de ton aide !!

Discussions similaires

  1. [AJAX] Requête Ajax qui ne retourne rien
    Par Droup dans le forum jQuery
    Réponses: 5
    Dernier message: 22/09/2013, 21h30
  2. [AJAX] Requête AJAX qui ne fonctionne pas
    Par benoitB dans le forum AJAX
    Réponses: 9
    Dernier message: 29/08/2013, 10h16
  3. [AJAX] Requête AJAX ne renvoie pas de résultat
    Par Akim13 dans le forum jQuery
    Réponses: 0
    Dernier message: 28/05/2013, 15h05
  4. [AJAX] Requête ajax qui renvoie une chaine
    Par DiverSIG dans le forum AJAX
    Réponses: 2
    Dernier message: 02/06/2010, 18h08
  5. Problème requête qui renvoie plusieurs
    Par dai.kaioh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/04/2004, 10h07

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