Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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".
<?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
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
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
je n'ai rien compris de ce que tu veux faire
A+JYT
Hors ligne
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
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
<?php echo $this->ajaxLink('Accueil', 'index/index/', array( 'method'=>'post', 'update'=>'#mainContent' )); ?>
le contrôleur
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...
Hors ligne
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
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
Pages: 1