Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-11-2007 15:24:14

kpitn
Nouveau membre
Date d'inscription: 09-11-2007
Messages: 1

Plusieurs [Action] avec un seul [Form]ulaire

Bonjour,

J'utilise depuis peu le framework et je fait toujours

Code:

<form action="<?php echo $this->baseUrl ?>/description/<?php   echo $this->action; ?>" method="post">
<textarea>blabla</textarea>
<input type="submit" value="<?php echo $this->escape($this->buttonText); ?>" />
</form>

Quel est la solution la plus simple pour gérer plusieurs action avec un seul formulaire ?
J'ai trouver des pistes avec la balise "name" du input, mais ca voudrait dire avec une action dans le controller, dans laquel on devrait en faire plusieurs, donc pas super propre.

Merci d'avance

Hors ligne

 

#2 09-11-2007 16:05:22

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Re: Plusieurs [Action] avec un seul [Form]ulaire

Bonjour,

Pour les formulaires la règle est la suivante :
1 formulaire = 1 action

Je ne vois pas ce qu'il y a de choquant dans le fait de faire plusieurs traitement dans ton action du controlleur.
Je dirai même l'inverse, c'est ce qu'il faut faire.

D'autres avis ? Et surtout si des avis contraires, je suis preneur d'explications smile


Geoffrey

Dernière modification par Geoffrey (09-11-2007 16:05:48)

Hors ligne

 

#3 09-11-2007 17:07:29

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

Re: Plusieurs [Action] avec un seul [Form]ulaire

je vais souvant même plus loin quelque soit le bouton de mon formulaire il renvois toujours sur l'action checkForm de mon controller
la première chose que cette action fait c'est de déterminer l'action à faire en fonction du bouton pressé
et elle fait un redirect vers la bonne action.

j'en suis venus à découper ma gestion de formulaire en tout petit bout et c'est devenu beaucoup plus simple et souple pour les enchaînement.
la methode add prépare un formulaire pour une création et renvois vers showForm
la méthode edit recherche un élément par son id et le prépare pour le formulaire. si elle trouve l'élément à éditer un redirect sur showform sinon retour à l'action précédente
la méthode showForm s'occupe que de l'affichage du formulaire (affectation de la vue préparation des boutons etc.)
l'action checkForm récupère les données du formulaire et redirige vers l'action approprié généralement verif
l'action verifForm (parfois confondu avec checkForm) vérifie les données et retourne sur showForm ou renvois sur save
l'action save enregistre les donnée en cas d'échec redirect sur showForm sinon retour à l'action qui à précédé le add ou le édit (gardé en session)

ainsi si dans le formulaire je prévois un bouton supprimer par exemple je rajoute une redirection dans checkForm vers confirmForm
l'action confirmForm s'occupe d'afficher une demande de confirmation avec rappel des données qui vont être supprimée. avec le bouton supprimer qui renvois sur l'action remove et annulé qui fait un retour à l'envoyeur

l'action remove supprime l'enregistrement.
etc.

du coup je peux facilement débrancher un enchaînement pour ajouter une traitement ou arriver sur une partie du processus depuis un autre contrôleur.

par exemple dans le formulaire d'édition d'un user j'ai les boutons add et edit profil qui renvoient sur les actions correspondantes du contrôleur profile qui lui même lorsqu'il a fini revient sur l'action qui précédait le add ou le edit soit donc le checkForm de mon contrôleur user c'est transparent pour le contrôleur profile qui ne sait d'où vient la demande d'ajout ou de modif.

A+JYT

Hors ligne

 

#4 09-02-2008 05:21:58

kiminox
Membre
Date d'inscription: 15-01-2008
Messages: 37

Re: Plusieurs [Action] avec un seul [Form]ulaire

Il est normal de pouvoir avoir une page pour plusieurs actions : en effet, il arrive fréquemment d'avoir plusieurs actions pour la même page car chacune va mettre à jour des parties différentes de la page.
Donc, à la fin de chaque action, tu rediriges vers la même page.

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