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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
 
 
 
	}