Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 18-05-2009 23:15:16

wiwidumi
Membre
Date d'inscription: 14-04-2009
Messages: 19

AjaxLink, traitement dans une div possible?

Bonjour, je débute avec jQuery, voici donc mon problème:


En cliquant sur un lien, j'affiche la vue de mon action "ajouter" dans la div "AjouterAnimal".

Code:

<?php echo $this->ajaxLink("Ajouter animal",
                    "/animal/ajouter",
                    array('update' => '#AjouterAnimal')); ?>

<div id="AjouterAnimal"></div>

Ce qui s'affiche dans la div est un formulaire, je souhaiterai savoir s'il serait possible de lancer le traitement directement dans la div, si oui comment faire? (le traitement se trouve dans l'action ajouter).

Je vous remercie.

Hors ligne

 

#2 20-05-2009 13:25:32

wiwidumi
Membre
Date d'inscription: 14-04-2009
Messages: 19

Re: AjaxLink, traitement dans une div possible?

Personne n'a essayé de faire un traitement puis rafraichissement dans une partie de la page avec jQuery ? Peut être ajaxLink n'est pas la bonne solution, si quelqu'un connait une solution je suis preneur. Ce que je veux correspond au ContentPlaceHolder de la masterpage en ASP.net, en voyant la documentation cette fonctionnalité semble différente sur zend.

Dernière modification par wiwidumi (20-05-2009 13:33:45)

Hors ligne

 

#3 25-05-2009 16:56:47

wiwidumi
Membre
Date d'inscription: 14-04-2009
Messages: 19

Re: AjaxLink, traitement dans une div possible?

Bon solution trouvée en passant les paramètres en json, et le traitement via un contrôleur dédié. Aucun tutoriel à ce sujet, c'est quand même dommage, j'ai dû bidouiller par ci par là, et ce fût fastidieux, je tenterais d'en faire, une fois mon application terminée.

Dernière modification par wiwidumi (25-05-2009 16:57:42)

Hors ligne

 

#4 25-05-2009 17:38:49

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

Re: AjaxLink, traitement dans une div possible?

je n'ai rien compris de ce que tu veux faire
A+JYT

Hors ligne

 

#5 27-05-2009 02:09:32

wiwidumi
Membre
Date d'inscription: 14-04-2009
Messages: 19

Re: AjaxLink, traitement dans une div possible?

Oui en effet mon post de départ n'était pas très clair, je cherchais en fait à rafraichir uniquement le div contenant mon formulaire (d'une autre page). Mais ce n'est pas possible, un div est un div, et non un ContentPlaceHolder (c'est une sorte de frame) comme on peut le voir du coté de ASP.net.
J'ai donc mis en place un formulaire avec un submit en ajax, pour le moment cela a l'air de fonctionner assez bien.

Dernière modification par wiwidumi (27-05-2009 02:21:02)

Hors ligne

 

#6 07-07-2009 19:22:57

leken11
Nouveau membre
Date d'inscription: 06-07-2009
Messages: 3

Re: AjaxLink, traitement dans une div possible?

Oui TRES FASTIDIEUX lol je présente ici une solution que j'ai trouvé en cherchant aussi par ci par là

Déjà il faut faire fonctionner l'ajaxLink avec la doc ça va encore (dans les vues ça va par contre si on l'utilise dans la layout là c'est la cata lol) puis pour le retour de quoi que ce soit dans une div il faut désactiver la layout sinon on se retrouve avec la layout + la vue demandée intégrée à la layout ^^ (pour un retour html)...

Normalement on se sert de ajaxContext mais je n'ai pas réussi à le faire fonctionner, c'est pourtant simple sur le papier...

Une solution :

Rajouter dans le contrôleur une fonction init() qui va s'exécuter avant les actions. Dans cet init() si on a à faire à une requête xmlHTTPRequest (ajax) on désactive la layout tout simplement... ça marche nickel pour moi en tout cas (et c'est pas trop la bidouille).

l'ajax link qui fait appel au contrôleur INDEX et à l'action INDEX

Code:

<?php 
                    echo $this->ajaxLink('Accueil',
                    'index/index/',
                    array(
                    'method'=>'post',
                    'update'=>'#mainContent'
                    ));
                    ?>

le contrôleur

Code:

class IndexController extends Zend_Controller_Action 
{
     /**
     * ajax context initialization
     */
    public function init()
    {
        //si requete ajax on désactive les layouts
        if($this->_request->isXmlHttpRequest()){
            $this->_helper->layout->disableLayout();    //disable layout for ajax
        }
        
    }

     /**
     * The default action - show the home page
     */
    public function indexAction() 
    {
        // TODO Auto-generated IndexController::indexAction() action
        $this->view->title="Accueil";
    }

J'espère que ça aidera certains... smile

Hors ligne

 

#7 27-11-2009 15:14:55

misterniark
Nouveau membre
Date d'inscription: 06-08-2009
Messages: 9

Re: AjaxLink, traitement dans une div possible?

Merci bcp leken11,

T'as solution viens de me faire gagner bien du temps !

leken11 a écrit:

J'espère que ça aidera certains...

Oui  moi!

Hors ligne

 

#8 05-05-2010 23:50:25

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: AjaxLink, traitement dans une div possible?

Salut,
J'avais aussi ce problème avec le layout :

leken11 a écrit:

Rajouter dans le contrôleur une fonction init() qui va s'exécuter avant les actions. Dans cet init() si on a à faire à une requête xmlHTTPRequest (ajax) on désactive la layout tout simplement... ça marche nickel pour moi en tout cas (et c'est pas trop la bidouille).

En fait, en cherchant bien, cela semble l'unique solution, et ce n'est pas forcement une bidouille. Quelqu'un a mieux ?

Fabrice

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