Oui je fais un input en html directement dans le template.
Tous les champs sont bien sauvés y compris d' autres champs hidden en base,
et même quand je reviens en arrière puis soumet à nouveau le formulaire mais
toujours avec la valeur du test à faux (20).
Comme si la valeur du bouton était toujours ignoré malgré le tableau suivant
qui est passé à chaque fois :
$_POST: Array
(
[evaluation] => Array
(
[score1] => 1
[comment1] =>
[contributor_id] => 5
* [customer_id] => 20*
[invitation_id] => 16
[_csrf_token] => acb68cf6c310496772b0f8c2e3bc3afd
[score2] => 1
[comment2] =>
[score3] => 4
[comment3] =>
[score4] => 3
[comment4] =>
[score5] => 3
[comment5] =>
[score6] => 3
[comment6] =>
[comment] =>
)
[_submit] => VALIDER
)
Le 30 novembre 2010 01:51, Mohamed Ayoub Benjelloun <
[email protected]> a écrit :
> En dur veux dire que tu l'écris en dur sans widget ni validator?
> si tel est le cas regarde du coté de ça
> http://www.symfony-project.org/forms/1_4/fr/
>
> Sinon en symfony généralement sur ton template l'attribut action de ta
> <form> pointera vers l'url_for() de l'action sf en cours, sauf que sur cette
> dernière tu fais un test qui différenciera l'usage de cette action pour les
> deux cas, à savoir, 1-premier usage ou 2-après post du form, du genre:
>
>
> Exemple d'utilisation d'un form contenant un input type file par exemple:
>
> *//action*
> ...
> $this->form = new ExempleForm();//se qui se passera dans les deux cas
> if ($request->isMethod('post'))//cas spécifique à l'après post
> {
>
> $this->form->bind($request->getParameter($this->form->getName()),$request->getFiles('fichier'));
> //le deuxième param n'est pas obligatoire
> if($this->form->isValid())
> {
> $file = $this->form->getValue('file');
> $filename =
> sha1($file->getOriginalName()).$file->getExtension($file->getOriginalExtension());
> $this->getUser()->setFlash('validationNotice', sprintf('traitement
> OK'));
> $this->form->save();
> }
> else
> {$this->getUser()->setFlash('validationNotice', sprintf('traitement
> NOK'));}//à personnaliser pour connaitre l'origine de l'erreur
> }
> ...
>
> *//template*
> //ceci affichera ton message de validation ou d'erreur sur le même template
> affichant ton form
> ...
> if($sf_user->hasFlash('validationNotice')){echo
> $sf_user->getFlash('validationNotice')}
> ...
>
>
> *+Dans ton cas*:
> 1-sur le template: utiliser deux input type submit de même nom mais de
> value différente, (à mon avis c'est suffisant) et sur l'action mettre ce
> teste:
> if($this->form['nomDuSubmit']=='value1'){//traitement1}
> elseif($this->form['nomDuSubmit']=='value2'){//traitement1}
>
> 2-essayer ça sur l'action pour voir si ça n'est pas un problème de
> configuration sur les protection CSRF:
> sfForm::disableCSRFProtection();
>
> 3-ne pas oublier echo $form->renderHiddenFields() sur le form de ton
> template
>
> et normalement ça doit marcher...
>
> Bon courage
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes Symfony-fr.
> Pour envoyer un message à ce groupe, adressez un e-mail à
> [email protected].
> Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
> [email protected]<symfony-fr%[email protected]>
> .
> Pour plus d'options, consultez la page de ce groupe :
> http://groups.google.com/group/symfony-fr?hl=fr
>
--
Cordialement,
Manuel Brossard
Twitter: twitter.com/infonel
Skype : mantex2039
Tel: + 33 9 72 17 00 41
--
Vous recevez ce message, car vous êtes abonné au groupe Google
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse
[email protected].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr