La Ferme du web - Les forums

Venez baraguiner avec la communauté !

Vous n'êtes pas identifié.

#1 23/08/2011 15:12:04

apprenti
Membre
Date d'inscription: 19/05/2011
Messages: 12

Personaliser la methode save d'un formulaire

Sujet Résolu

Bonjour à tous,

J'ai un soucis concernant mon backend. J'ai un formulaire qui me permet d'éditer pour des utilisateurs certaines informations. Parmis ces informations une case à cocher. Je veux que quand l'utilisateur décoche cette case puis valide il soit rediriger vers une page.

Comme la modification ne concerne que cet unique formulaire j'ai voulu inséré mon code dans lib/form.

Code:

Code se trouvant dans lib/form
public function save(sfWebRequest $request)
      {
 
    if ($request->isMethod('post')) 
    {
      $this->photo($request->getParameter('NomDuChamp')); // pour récupérer la valeur du paramétre à analyser
      if ($this->photo == FALSE) // en cas de champ décoché
      {
        $this->redirect(@homepage); //uniquement pour teste de la fonction 
      }
    }
      }

Cependant quand je save mon formulaire avec le bouton décoché rien ne se passe. 
J'ai consulté la documentation de symfony sur les formulaire (notament ce lien http://www.symfony-project.org/forms/1_ … Validation et http://www.symfony-project.org/forms/1_ … m-Creation http://www.symfony-project.org/forms/1_ … ode_dosave ) mais je suis plus perdu qu'autre chose.

En vous remerciant par avance de vos réponses.

Edit: un début de réponse le code n'était pas placé au bon endroit. Le bouton save de l'admin generator fait appelle à la méthode Update. J'ai déplacé mon code dans executeUpdate.

Code:

public function executeUpdate(sfWebRequest $request)
      { 

          parent::executeUpdate($request);    // nécessaire sinon erreur template manquant 

        if ($request->isMethod('post')) // la valeur que je veux récupérer provient d'un formulaire  
           {
             $photo = $request->getParameter('photoOk'); // la valeur du champ photoOk doit être récupérer ( il s'agit d'une checkbox) 
            if ($photo == TRUE)     // si c'est coché 
            {
                //traitements à effectue
            }   
                 else // si c'est déchoché 
                {
                    // traitement a effectuer.
                }  
          }
         
      }

Ce n'est qu'un code d'exemple le problème vient de la récupération de la valeur. En faisant un die de ma variable ça renvoie NULL. Ce qui fait que même si la  case est cochée le bon traitement ne s'effectue pas.

J'ai regardé la doc de symfony il me semble pourtant procéder de la bonne façon pour récupérer une valeur...

EDIT: En fait l'erreur était toute simple... le nom du champ était contenu dans un tableau du coup au lieu de

Code:

getParameter('NomDuChamp');

il fallait faire

Code:

getParameter(' NomTableau[NomDuChamp]');

Voila c'était tout bête

Dernière modification par apprenti (29/08/2011 15:03:45)

Hors ligne

 

23/08/2011 15:12:04

Botte De Foin Publicitaire


Pied de page des forums

Powered by FluxBB
© Copyright 2008-2009 - LaFermeduWeb.net