Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Voici mon problème :
J'ai 2 formulaires, un formulaire principal (une liste déroulante).
Lors du clic sur mon submit, j'affiche un sous-formulaire.
Mais comment faire pour éxécuter un traitement seulement à la validation de ce sous-formulaire ? (parce que malgré ma condition, la validation du 1er formulaire engendre quand même le traitement que je souhaite effectuer à la valdiation de mon sous-formulaire.)
(dans le code ci-dessous, par exemple, "test" s'affiche dès la valdiation du 1er formulaire, alors que je souhaite l'afficher seulement à la validation du sous-formulaire)
Voici le bout de code concerné :
//Formulaire principal $form = new Zend_Form(); $form ->setAction('') ->setMethod('post'); $listes=new Zend_Form_Element_Select('type_tache'); $listes->setLabel('Type de tâche : ') ->addMultiOptions($liste); $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('OK'); $form->addElements(array($listes,$submit)); if ($this->_request->isPost()) { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { $id = (int)$form->getValue('type_tache'); $row = $type_tache->fetchRow('id_type_tache='.$id); $tache = explode(';',$row->contenu_type_tache); //sous-formulaire $subForm = new Zend_Form_SubForm(); $subForm ->setAction('') ->setMethod('post'); $champs = array(); foreach($tache as $val) { $champs[] = new Zend_Form_Element_Text($val, array( 'label' => $val) ); } $subForm->addElements($champs); $submit2 = new Zend_Form_Element_Submit('submit2'); $submit2->setLabel('Enregistrer'); $subForm->addElements(array($submit2)); $form->addSubForm($subForm, 'subform'); if ($this->_request->isPost()) { $formData = $this->_request->getPost(); if ($subForm->isValid($formData)) { //Le traitement que j'aimerais faire echo "test"; } } } else { $form->populate($formData); } } $this->view->form = $form; }
Hors ligne