Valider un sous-formulaire
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é :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
//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;
} |