Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-04-2010 13:47:09

bahamut100
Nouveau membre
Date d'inscription: 16-03-2010
Messages: 3

Comment 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:

        //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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages