Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
[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
Pages: 1