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