IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Passer des parametres au formulaire "new" [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut Passer des parametres au formulaire "new"
    Bonjour,

    J'ai besoin de faire passer une variable à un champs Hidden dans le formulaire New

    J'ai donc fais ça :

    Dans mon action.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function executeNew(sfWebRequest $request){
        $this->form = new VisiteMedicalForm();
        $this->varPersonnelId=$request->getParameter('personnel_id'); //Mon paramètre
      }
    Je ne change rien dans newSuccess.php par contre je rajoute au VisiteMedicalForm.class.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->widgetSchema ['personnel_id'] = new sfWidgetFormInputHidden ( );
    $this->setOption ( 'default', array ('personnel_id' => $varPersonnelId) );
    J'ai le droit au petit message :
    Notice: Undefined variable: varPersonnelId in /var/www/zonetest/armelle/lib/form/doctrine/VisiteMedicalForm.class.php on line 36
    Comment dois-je faire pour que mon paramètre soit pris en compte ?

  2. #2
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Bon j'ai avancé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      public function executeNew(sfWebRequest $request){
        $varPersonnelId=$request->getParameter('personnel_id');
        $this->form = new VisiteMedicalForm();
        $this->form->getWidget('personnel_id')->setDefault($varPersonnelId);
      }
    Si j'ajoute ceci dans _form.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $form['personnel_id'] ?>
    J'ai bien ma valeur ce qui n'est pas le cas si je ne l'ajoute pas.
    C'est moche et pas opérationnelle
    Quelqu'un as une idée pour que le _form.php générique de symfony prenne ma valeur en compte ?

  3. #3
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Cette fois c'est la bonne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function executeNew(sfWebRequest $request){
      if($request->getParameter('personnel_id')){
        $varPersonnelId = $request->getParameter('personnel_id');
        $this->form = new VisiteMedicalForm();
        $this->form->setDefault('personnel_id', $varPersonnelId);    
      }else{
        $this->forward404Unless($this->visite_medical);
      }
    }
    Ensuite je fais ce que je veux avec mes ...

    Merci pour la proposition, mais du coup j'ai pas testé.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 25
    Par défaut
    Bonjour,

    Pourquoi ne pas rajouter un champ "personnel_id" directement dans le form ?

    dans le configure() de VisiteMedicalForm.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->widgetSchema['personnel_id'] = new sfWidgetFormInputHidden();
    $this->validatorSchema['personnel_id'] = new sfValidatorPass();
    Ensuite au moment de la création dans le executeNew, il est possible d'instancier le form avec une valeur en lui passant en paramètre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->form = new VisiteMedicalForm( array('personnel_id' => $varPersonnelId ) )
    En toute logique, cela permettra d'ajouter un champ hidden sur ce formulaire, instancié avec la bonne valeur "par défaut"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] passer des parametres au formulaire "new" de symfony
    Par miiizooo dans le forum Symfony
    Réponses: 7
    Dernier message: 18/02/2011, 16h47
  2. passer des parametres d`un formulaire JSP vers un servlet
    Par lucaazori1988 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/12/2009, 20h10
  3. [script SQL]comment passer des parametres a un scrip sql?
    Par la7su dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/03/2005, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo