Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-07-2008 20:39:41

versgui
Nouveau membre
Date d'inscription: 25-07-2008
Messages: 6

[Zend_Form][1.5] Récuperer des valeurs POST

Bonjour,

Je débute avec ZF et là, je dois avouer que je patauge énormément.

Dans une action, j'ai ce code :

Code:

$validator_pseudo = new Zend_Validate_Regex("`^[a-zA-Z0-9\_\-\ ]{4,16}$`");
$validator_pseudo->setMessage('Votre pseudonyme doit être composé de 4 à 16 caractères et contenir uniquement des lettres, chiffres, tirets, underscores et espaces.');
$pseudo = new Zend_Form_Element_Text('pseudo');
$pseudo->setLabel('Choisissez le nom de votre personnage (pseudonyme)')
        ->setRequired(true)
        ->setDescription('Votre pseudonyme doit être composé de 4 à 16 caractères (uniquement des lettres, chiffres, tirets, underscores et espaces).<br/>Choisissez-le bien : il ne pourra plus être modifié !')
        ->addValidator($validator_pseudo);

[...]
         
$mail = new Zend_Form_Element_Text('mail');
$mail->setLabel('Saisissez votre courriel/adresse e-mail')
    ->setRequired(true)
    ->setDescription('Nous vous enverrons votre code de confirmation à cette adresse.')
    ->addValidator('EmailAddress', true);
             
$submit = new Zend_Form_Element_Submit('go');
$submit->setLabel('Go !');

$this->addElements( array($pseudo, $mail, $submit)  );
        
$this->clearDecorators();
$this->addDecorator('FormElements')
       ->addDecorator('Form')
       ->addDecorator('Description');
       
$this->setElementDecorators(array(
               array('ViewHelper'),
               array('Errors'),
               array('Description', array('escape' => false)),
               array('Label', array('separator' => ' ')),
               array('HtmlTag', array('tag' => 'div', 'class'=>'row_form')),
));
                   
$submit->setDecorators(array(
               array('ViewHelper'),
               array('Description'),
));
      
if ($this->getRequest()->isPost()) {
         
     $joueurs = new Joueurs(); // Joueurs est une table
         $pseudo_r = $form->getValue('pseudo');
         $mail_r = $form->getValue('mail');
         
         // est-ce que le pseudo ou le mail existe ?
         $exists = $joueurs->fetchRow('pseudo="'. $pseudo_r .'" OR mail="'. $mail_r .'"');
            
      if ($form->isValid($_POST)) {  
                $this->_forward('confirm'); 
          }
}
        
$this->view->form = $form;

Et je n'arrive tout simplement pas à récuperer les valeurs des champs "pseudo" et "mail" : rien, nada, tout est vide. Alors que d'après LiveHTTPHeader (extension Firefox), les champs sont correctement envoyés au serveur lors de l'envoi du formulaire...
Où pourrait être le problème ?

Merci d'avance.

Hors ligne

 

#2 25-07-2008 21:02:01

Mat
Membre
Lieu: Clermont-Ferrand
Date d'inscription: 20-07-2008
Messages: 15
Site web

Re: [Zend_Form][1.5] Récuperer des valeurs POST

Salut

Dans ton code tu essaie d'acceder aux elements du formulaire avant que celui-ci ait connaissance des donnees qui ont ete envoyees en post :

Code:

         $pseudo_r = $form->getValue('pseudo');
         $mail_r = $form->getValue('mail');

Il faudrait que tu y accede apres avoir execute $form->isValid($_POST).

Mais en fait vu que tu as pour but de valider des elements de ton formulaire, tu devrais plus regarder du coté des validateurs.
Il faudrait que tu fasse ton propre validateur, qui sera executé au moment du isValid() et qui aura accès aux données du formulaire.

Dernière modification par Mat (25-07-2008 21:04:29)

Hors ligne

 

#3 25-07-2008 21:56:29

versgui
Nouveau membre
Date d'inscription: 25-07-2008
Messages: 6

Re: [Zend_Form][1.5] Récuperer des valeurs POST

Okay, je vais regarder ça de plus près. Merci smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages