IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Valider un sous-formulaire


Sujet :

Zend_Form PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 44
    Points
    44
    Par défaut 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 : 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;
     
     
     
    	}

  2. #2
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Salut

    Peux tu montrer ce qu'affiche le deuxième formulaire?
    Les idiots sont ceux qui ne posent jamais de question!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 44
    Points : 44
    Points
    44
    Par défaut
    Alors, voici le 1er formulaire :



    Quand on valide, il affiche le sous-formulaire, ainsi que la partie qu'il n'est pas censé afficher :




    Et au clic sur le bouton OK du sous-formulaire, la même page est affichée :


  4. #4
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Euh.... ça affiche rien! lol
    Bon c pas grave

    En fait y a plusieurs solutions, le sous formulaire (subform) ou la bidouille .... je préfère la dernière!

    Tu crée un premier formulaire
    $form = new Zend_Form();
    T'ajoute tes champs.....
    Ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ($this->_request->isPost()) {
        $form2 = new Zend_Form();
        // t'ajoute les champs supplémentaires
        $form->addElements($form2->getElements());
    }
    Les idiots sont ceux qui ne posent jamais de question!

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/09/2010, 17h06
  2. Réponses: 3
    Dernier message: 01/03/2010, 09h38
  3. Lenteur à la validation d'un formulaire sous Firefox 3
    Par TSnarfK dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/10/2008, 16h06
  4. formulaire ne se valide pas sous IE
    Par MortDansLAme dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/04/2008, 08h51
  5. Réponses: 5
    Dernier message: 01/10/2006, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo