plusieurs choses:

1. Tu ne pourras jamais récupérer l’entièreté du formulaire si tu
laisses l'instruction dans ton foreach telle quelle:
   fais plutôt:
        $respond[] = $widget->renderRow();

2. Si tu veux récupérer seulement les valeurs du formulaire, cette
méthode n'est pas la bonne dans la mesure où renderRow() te renvoie
chaque champs formaté en html. Si c'est ce que tu souhaite, j'ai rien
dit.

3. Ceci dit, si tu veux récupérer les valeurs entrées par un
utilisateur ET les messages d'erreur associés, je ne puis que te
conseiller de récupérer le formulaire posté par l'user et d'utiliser
la méthode bind avant de remettre les champs dans un tableau puis de
l'encoder en json (avec json_encode()).

En supposant que tu veuilles récupérer tes champs en ajax, essaye qqch
du genre:

   public function executeNew(sfWebRequest $request){

      $this->form = new CcAbsenceForm();

      if($request->isXmlHttpRequest()){

          $respond = $this->getJsonForm($request, $this->form);
          $this->getResponse()->setContentType('application/json');
          return $this->renderText($respond);
      }
   }

   protected function getJsonForm(sfWebRequest $request, sfForm $form)
{

       $form->bind($request->getParameter($form->getName()));
       $resp = array();
       foreach ($form as $widget){
         $resp[] = $widget->renderRow();
       }
       return json_encode($resp);
   }






On 1 juin, 07:46, stakovicz <stakov...@gmail.com> wrote:
> Le 31 mai 2011 16:58, Cyril FLIELLER <cyril.fliel...@gmail.com> a écrit :
>
> >   public function executeNew(sfWebRequest $request){
> >     $this->form = new CcAbsenceForm();
> >     $respond = array();
> >     foreach($this->form as $widget){
> >       $respond = $widget->renderRow();
> >     }
> >     $this->getResponse()->setContentType('application/json');
> >     return $this->renderText($respond);
> >   }
>
> Essaie :
> return $this->renderText(json_encode($respond));

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony-fr@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à