2010-06-15 7 views
0

J'essaie de créer un élément de type tableau de message dans une application CakePHP. Cet élément sera affiché sur toutes les pages et les vues qui utilisent une mise en page particulière. Je veux qu'il affiche tous les messages dans le modèle, puis affiche le formulaire d'ajout quand un lien est cliqué, puis retourne à la liste des messages mis à jour lorsqu'il est soumis. Tout cela sans affecter la vue/page en cours.Élément dynamique CakePHP

J'ai mon modèle de message/contrôleur/index mis en place, avec un élément de panneau de message qui demande l'action d'index. Cela fonctionne bien. Cependant, je suis perplexe sur la façon de revenir à la page/action d'origine à partir de laquelle le lien a été cliqué. Je ne peux pas utiliser $ this-> referer() parce que cela retournera à l'action add(); ce que je veux plutôt, c'est de créer un lien vers la page/vue avant cela.

Des indications générales sur la façon de réaliser quelque chose comme ça?

Répondre

0

Je voudrais aborder cela en utilisant Ajax, et utiliser une mise en page ajax.

$this->layout('ajax')

Ensuite, vous pourrez configurer une pile complète pour le traitement de cela, et passer des choses différentes en tant que paramètres dans les actions du contrôleur. En utilisant Ajax, vous n'aurez pas besoin de vous soucier de transmettre le contrôleur/la paire d'actions référents. Vous pouvez également utiliser le retour de ceci pour mettre à jour la liste en appelant au MessagesController. Le bonus supplémentaire est que vous pouvez simplement changer la disposition de vos contrôleurs réels, sans avoir à écrire de code supplémentaire du tout.

Dans votre contrôleur, vous pouvez vérifier Ajax

if($this->params['requested']){ 
    $this->layout('ajax'); 
    return $data; 
}else{ 
    $this->set('data',$data); 
} 
+0

Merci pour la direction. Je vais regarder dans cela. –