Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2011, 12h03   #1
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
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 :
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 :
1
2
3
 
$this->widgetSchema ['personnel_id'] = new sfWidgetFormInputHidden ( );
$this->setOption ( 'default', array ('personnel_id' => $varPersonnelId) );
J'ai le droit au petit message :
Citation:
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 ?
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 14h48   #2
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Bon j'ai avancé :

Code :
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 :
<?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 ?
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 15h22   #3
Futur Membre du Club
 
Inscription : août 2009
Messages : 24
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 24
Points : 18
Points : 18
Bonjour,

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

dans le configure() de VisiteMedicalForm.php:
Code :
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 :
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"
ufretin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 15h38   #4
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
Cette fois c'est la bonne.

Code :
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é.
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h37.


 
 
 
 
Partenaires

Hébergement Web