Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-03-2008 12:34:10

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Zend_Form : Récupérer la Form et d'autre champs avec getPost

Bonjour,

Je commence mon apprentissage avec Zend_Form en utilisant le tuto sur le site d'akrabat : http://akrabat.com/2008/02/21/simple-ze … -example/.

Dans son controlleur j'ai le code suivant :

Code:

        $form = new forms_ContactForm();
        if ($this->_request->isPost()) {
            $formData = $this->_request->getPost();
            if ($form->isValid($formData)) {
                echo 'success';
                exit;
            } else {
                $form->populate($formData);
            }
        }

La fonction getPost() me retourne le formulaire. Mais si j'ai besoin de récupérer d'autres variables ou si j'ai plusieurs formulaire Zend_Form sur ma page ?

Merci

Hors ligne

 

#2 14-03-2008 13:26:57

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend_Form : Récupérer la Form et d'autre champs avec getPost

Perso en plus de faire un test avec $this->_request->isPost(), je rajoute un test sur l'existance d'un submit de cette façon:

Code:

if ($this->_request->isPost() and $this->_hasParam('validEdit') and $form->isValid($_POST)) {
    //...c'est ok traitement
}

Hors ligne

 

#3 14-03-2008 14:29:35

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: Zend_Form : Récupérer la Form et d'autre champs avec getPost

whitespirit a écrit:

Bonjour,

Je commence mon apprentissage avec Zend_Form en utilisant le tuto sur le site d'akrabat : http://akrabat.com/2008/02/21/simple-ze … -example/.

Dans son controlleur j'ai le code suivant :

Code:

        $form = new forms_ContactForm();
        if ($this->_request->isPost()) {
            $formData = $this->_request->getPost();
            if ($form->isValid($formData)) {
                echo 'success';
                exit;
            } else {
                $form->populate($formData);
            }
        }

La fonction getPost() me retourne le formulaire. Mais si j'ai besoin de récupérer d'autres variables ou si j'ai plusieurs formulaire Zend_Form sur ma page ?

Merci

getPost renvoi toutes tes variables postés, pas un formulaire.
Avec argument, elle te renvoi juste la valeur d'une variable.
Avec 2, le deuxième argument est une valeur par défaut.

Code:

array $data = getPost();
$val = $getPost('myval');
$val = $getpost('myval', 'defaultVal');

----
Gruiiik !

Hors ligne

 

#4 14-03-2008 14:34:47

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Zend_Form : Récupérer la Form et d'autre champs avec getPost

Oui, mais pour valider un formulaire, mieux vaut éviter de créer un tableau à la main en regroupant toute les valeurs. Perso j'utilise toujours $_POST... et ça marche très bien car avec le coup du test sur le submit, un form n'est executé que si ce n'est vraiment celui là qui a été soumis. Pour exemple j'ai un page où j'ai 2 forms avec certains name identiques et ça ne pose pas de soucis 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