Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir à tous,
J'ai une classe formulaire qui étend Zend_Form:
class Form_Reservation extends Zend_Form{
public function init()
{
$this->setMethod('post');
//construction des éléments du formulaire.
...
}
J'instancie dans un contrôleur ce formulaire que je redirige ensuite dans une vue:
class ReservationController extends Zend_Controller_Action
{
public function init(){
$formulaireAjoutReservation = new Form_Reservation();
//suite du traitement
//redirection
$this->view->form = $formulaireReservation;
Dans ma vue je fais juste:
echo $this->form;
Tout cela fonctionne très bien pour ajouter un enregistrement
J'aimerais maintenant pouvoir modifier ces enregistrements en utilisant le même formulaire. C'est à dire faire remonter des informations de la base(là pas de soucis), pré renseigner ce formulaire avec les données remontées en les passant en paramètre lors de l'instanciation du formulaire(là, je ne sais pas faire ), puis ensuite faire un update (là non plus pas de soucis).
Vous m'avez compris, là ou je bloque c'est au passage des paramètres!
Merci d'avance pour vos conseils
Dernière modification par Junk (28-10-2009 09:34:36)
Hors ligne
Bonjour,
Pour mettre des valeurs (BDD, retour formulaire...) dans un champ texte du formulaire en appelant la methode setValue() :
$txt = new Zend_Form_Element_Text('xxx');
$txt->setLabel('xxx')
->setValue('valeur');
Je t'invite à allé voir la doc et notament la methode populate() qui est très utile.
++
Hors ligne
bonjour,
Mon soucis n'est pas d'affecter une valeur à un élément d'un formulaire, mais de transmettre ces valeurs en paramètre lors de la construction du formulaire.
mon formulaire est actuellement construit avec la méthode init(), j'aimerais donc pouvoir le construire en ajoutant des paramètres à la méthode init($valeur1 = '', $valeur2 = '', ...)
est il donc possible de faire:
$form = new formulaire() qui prendrais les valeurs par défaut et $form = new formulaire("valeur1", "valeur2", ...)
j'espère m'être mieux exprimé
Hors ligne
Bonjour,
Oui c'est possible, voici un exemple :
Le formulaire :
class Form_Reservation extends Zend_Form{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName($options)
->setAction('/')
->setMethod('post');
....
Le controlleur :
$formulaireAjoutReservation = new Form_Reservation('param');
++
Dernière modification par _Fuse_ (15-10-2009 11:18:13)
Hors ligne
Dans ce cas la je suis obligé d'utiliser la méthode __construct() et non la méthode init() ??
Hors ligne
Pour conclure ce post,
j'ai donc utilisé la fonction __construct ainsi que le super constructeur de la class Zend_form. J'ai pu alors aisément transmettre des paramètres à cette fonction et du coup résoudre mon problème.
Merci à _fuse_ pour ses réponses
Hors ligne