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