Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-07-2010 17:28:09

djo
Membre
Date d'inscription: 19-04-2010
Messages: 18

Zend Form : Validateur qui oblige au moins une saisie sur tout le form

Bonjour,

Existe-t'il un validateur qui oblige la saisie sur au moins un des champs d'un formulaire ?

Je m'explique. J'ai un zend form avec plusieurs champs textes. Je n'ai attribué aucun validateur sur mes champs. En revanche je ne veux pas qu'un utilisateur puisse valider le formulaire sans au moins avoir remplit un des champs.

Existe-t'il un validateur à appliquer directement sur le formulaire qui pourrait vérifier ceci ?

Merci par avance.

Djo

Hors ligne

 

#2 08-07-2010 16:34:42

ubini
Membre
Lieu: gillarens/Suisse
Date d'inscription: 23-01-2008
Messages: 110
Site web

Re: Zend Form : Validateur qui oblige au moins une saisie sur tout le form

Salut,

Tu dois le faire toi-même. J'ai fait ça comme ça pour un multi-checkbox un peu spécial, tu peux peut-être repartir dessus:

Code:

class Validator_Ads_Publication extends Zend_Validate_Abstract
{
    const ADS_NOT_PUBLISHED = 'adsNotPublished';

    protected $_messageTemplates = array(
        self::ADS_NOT_PUBLISHED => 'This ad may not be published, pls choose one option 
                                    (service, rental or selling)'
    );

    public function isValid($value, $context = null)
    {
        if ($context['service'] === NULL AND $context['rental'] === NULL AND $context['sales'] === NULL)
        {
            $this->_error(self::ADS_NOT_PUBLISHED);
            return false;
        }
        
        return true;
    }
}

Tu peux rajouter ce validateur au bouton "submit" par exemple.

++


http://www.easyswap.org - site d'échange de biens et de services conçu avec jQuery et Zend Framework
http://www.lambelet.net - mon blog perso et inutile

Hors ligne

 

#3 09-07-2010 09:26:43

djo
Membre
Date d'inscription: 19-04-2010
Messages: 18

Re: Zend Form : Validateur qui oblige au moins une saisie sur tout le form

Super pratique ton validateur smile Merci.
Du coup si cela peut servir à quelqu'un voici ce que j'ai fait. A savoir que mon script est un générateur de zend form et que je ne connais que le nom du bouton à chaque fois que j'en génère un (d'ou le unset);


class Validator_CheckPublication extends Zend_Validate_Abstract {
   
    public function isValid($value, $context = null) {

        //On copie le tableau pour ne pas travailler directement dessus
        $contextCloned = $context;

        //On supprime la seule entrée obligatoire et connue (le bouton submit)
        unset ( $contextCloned ['module_form_submit'] );
       
        //On vérifie si les values du tableau sont vide
        $i = 0;
        foreach ( $contextCloned as $key => $val ) {
            if ($val != "") {
                $i = $i + 1;
            }
        }
       
        //Si i=0 c'est que l'utilisateur n'a absolument rien renseigné
        if ($i == 0) {
            return false;
        }
   
        return true;
    }
}

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