Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-05-2015 18:29:06

NUARY
Nouveau membre
Date d'inscription: 16-05-2015
Messages: 1

Validator controlé à l'entree dans le formulaire d'où erreur

Bonjour,

Je suis débutante dans la POO et donc dans ZF et PHP.
J'ai besoin de votre aide.
J'ai créé une application avec un controller qui affiche 2 formulaires et vue associés. Le 1ier formulaire/vue s'affiche avec succès. Par contre quand vient l'affichage du 2ième formulaire/vue, les validators sont contrôlés alors que je n'ai pas pu saisir de données (Value is required and can't be empty). Comment faire pour que ce contrôle ne se fasse pas à l'affichage mais uniquement quand on clique sur le bouton OK.

Merci pour votre aide

Je vous poste le code.

Marielle

Code:

[lang=php]
<?php

class IndexController extends Zend_Controller_Action
{

 
    public function saisienumeroAction()
    {
        
       $form = new Application_Form_Saisienumero();

       $form->envoyer->setLabel('modifier');
       $this->view->form = $form;

       if ($this->getRequest()->isPost()) {
          $formData = $this->getRequest()->getPost();
          if ($form->isValid($formData)) {
            $numero = $form->getValue('numero');
            $creer = $form->getValue('creer');
            $envoyer = $form->getValue('envoyer');
            $form->reset();
                if (!empty($_POST['creer'])) 
                 { //appel clientsaction pour reation

// APPEL d'UNE AUTRE ACTION/FORMULAIRE/VUE  DANS UNE ACTION EST-CE POSSIBLE ?

                $formulaire = $this->clientsAction();
                 }   
                elseif(isset($_POST['envoyer']))
                 {
                   echo "modifier";
                   $numero = new Application_Model_DbTable_Personne();
                $numero->obtenirpersonne($numero);
                 }

           } else { echo"forminvalid";
          // $form->populate($formData);
                  }}

    }                           





    public function clientsAction()
    {
          $form1 = new Application_Form_Clients();
          $this->view->form = $form1;        

          $form1->ok->setLabel('OK');
          $form1->numero_adherent->setLabel('NUMERO ADHERENT');
          $form1->nom->setLabel('NOM');
          $form1->prenom->setLabel('PRENOM');
          $form1->courriel->setLabel('COURRIEL');
          $form1->adresse1->setLabel('ADRESSE');
          $form1->adresse2->setLabel('COMPLEMENT ADRESSE');
          $form1->code_postal->setLabel('CODE POSTAL');
          $form1->ville->setLabel('VILLE');
          $form1->desactive->setLabel('DESACTIVE');
          $form1->date_creation->setLabel('DATE DE CREATION');
          $form1->motdepasse->setLabel('MOT DE PASSE');
          $form1->estemploye->setLabel('EST EMPLOYE');

          if ($this->getRequest()->isPost()) {

             $formData = $this->getRequest()->getPost();

             if ($form1->isValid($formData)) {

                $nom = $form1->getValue('nom');
                $prenom = $form1->getValue('prenom');
                $courriel = $form1->getValue('courriel');
                $adresse1 = $form1->getValue('adresse1');
                $adresse2 = $form1->getValue('adresse2');
                $code_postal = $form1->getValue('code_postal');
                $ville = $form1->getValue('ville');
                $desactive = $form1->getValue('desactive');
                $date_creation = $form1->getValue('date_creation');
                $motdepasse = $form1->getValue('motdepasse');
                $estemploye = $form1->getValue('estemploye');
                $numero_adherent = $form1->getValue('numero_adherent');

                  $personneTable = new Application_Model_DbTable_Personne();
     $data=array( 'prenom'=>$prenom,
                   'nom'=>$nom,
                   'courriel'=>$courriel,
                   'adresse1'=>$adresse1,
                   'adresse2'=>$adresse2,
                   'code_postal'=>$code_postal,
                   'ville'=>$ville,
                   'desactive'=>$desactive,
                   'date_creation'=>$date_creation,
                   'numero_adherent'=>$numero_adherent,
                   'motdepasse'=>$motdepasse,
                   'estemploye'=>$estemploye);


              $personneTable->insert($data);
                                                 } else
          { echo "invalid ecranyyyyyyy"; 

            $this->view->form = $form1;

            $form1->populate($formData);
          }
        }

       }
}


############
FORMULAIRE CLIENT 2ième formulaire dont les validator sont contrôlés avant même avoir pu saisir une données

<?php

class Application_Form_Clients extends Zend_Form
{

    public function init()
    {
        $this->setName('personne');

        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');

        $numero_adherent = new Zend_Form_Element_Text('numero_adherent');
        $numero_adherent->setRequired(true)
                        ->addValidator('NotEmpty')                
                        ->setOptions(array('size'=>'10'))
                        ->removeDecorator('htmlTag');

        $nom = new Zend_Form_Element_Text('nom', array('class' => 'label_long-text'));
        $nom    ->setRequired(true)
                ->setOptions(array('size'=>'45'))
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty')                
                ->removeDecorator('htmlTag');



        $prenom = new Zend_Form_Element_Text('prenom', array('class' => 'label_long-text'));
        $prenom->setRequired(true)
              ->setOptions(array('size'=>'45'))
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty')
                ->removeDecorator('htmlTag');



        $courriel = new Zend_Form_Element_Text('courriel', array('class' => 'label_long-text')    );
        $courriel->setRequired(true)
              ->setOptions(array('size'=>'100'))
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty')
                ->removeDecorator('htmlTag');


        $adresse1 = new Zend_Form_Element_Text('adresse1', array('class' => 'label_long-text'));
        $adresse1->setRequired(true)
                 ->setOptions(array('size'=>'100'))
                 ->addFilter('StripTags')
                 ->addFilter('StringTrim')
                 ->addValidator('NotEmpty')
                 ->removeDecorator('htmlTag');


        $adresse2 = new Zend_Form_Element_Text('adresse2', array('class' => 'label_long-text'));
        $adresse2->setOptions(array('size'=>'100'))
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->removeDecorator('htmlTag');

        $code_postal = new Zend_Form_Element_Text('code_postal', array('class' => 'label_long-text'));
        $code_postal->setRequired(true)
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty')                
              ->removeDecorator('htmlTag');



        $ville = new Zend_Form_Element_Text('ville', array('class' => 'label_long-text'));
        $ville->setRequired(true)
              ->setOptions(array('size'=>'50'))
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty')
              ->removeDecorator('htmlTag');

        $desactive = new  Zend_Form_Element_Checkbox('desactive',array('label_placement'=>'prepend'));
        $desactive->setCheckedValue('Oui')
                  ->setUncheckedValue('Non');

        $date_creation = new Zend_Form_Element_Text('date_creation', array('class' => 'label_long-text'));
        $date_creation->setRequired(true)
              ->setOptions(array('size'=>'50'))
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty','Date')
              ->removeDecorator('htmlTag');

         $motdepasse =  new Zend_Form_Element_Password('motdepasse');
         $motdepasse ->setRequired(true)
                   ->addValidator('NotEmpty')
                  
              ->setOptions(array('size'=>'45'));
                 ->setAttrib('minlength' => '6', 'maxlength' => '50') ;
    
        $estemploye = new Zend_Form_Element_checkbox('estemploye',array('label_placement'=>'prepend'));
        $estemploye->setCheckedValue('Oui')
                   ->setUncheckedValue('Non');


        $ok = new Zend_Form_Element_Submit('ok');
        $ok->setAttrib('id', 'boutonok');
              // ->removeDecorator('DtDdWrapper');


        $this->addElements(array($id,$numero_adherent, $nom, $prenom, $courriel, $adresse1, $adresse2, $code_postal, $ville, $desactive, $date_creation, $motdepasse, $estemploye, $ok));
        
    }


}

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