Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-05-2013 00:29:38

A.amine
Nouveau membre
Date d'inscription: 04-05-2013
Messages: 5

activer et desactiver un onglet

bonjour à tous,
e désire proposer à des utilisateurs d'entrer leurs informations.
Je voudrais que ces informations soient découpées en plusieurs parties, chacune d'entre-elles dans un Onglet.
Exemple :
onglet 1 : un formulaire contenant nom,prénom,date de naissance.
onglet 2 : un formulaire contenant salaire,situation familiale.
un bouton suivant pour passé du premier onglet au deuxième onglet si le premier formulaire est validé.

-je voudrais que l'onglet 2 soit désactivé tant que le premier formulaire n'est pas validé et aussi le bouton suivant doit être désactiver.
j'ai commencé sur un petit exemple pour débuter dont voici le code :

mes formulaires :

Code:

class Albums_Form_Produit extends Zend_Form
{
    public function init()
    {
        $this->setName('album');
        

        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');

        $artiste = new Zend_Form_Element_Text('artiste');
        $artiste->setLabel('Artiste')
                ->setRequired(true)
                ->addFilter('StripTags')
                ->addFilter('StringTrim')
                ->addValidator('NotEmpty');

        $titre = new Zend_Form_Element_Text('titre');
        $titre->setLabel('Titre')
              ->setRequired(true)
              ->addFilter('StripTags')
              ->addFilter('StringTrim')
              ->addValidator('NotEmpty');
        $datecreat = new ZendX_JQuery_Form_Element_DatePicker(
                'date',
                array('label' => 'Date')
        );
            
        $datecreat->setJQueryParam('dateFormat', 'dd-mm-yy');
        
        $this->setAction('/Produit/add')
             ->setMethod('post');
        $this->addElements(array($id, $artiste, $titre,$datecreat));
        
    }         
}


class Albums_Form_Artiste extends Zend_Form
{
    public function init()
    {
        $this->setName('artist');
        $artist = new Zend_Form_Element_Text('artist');
        $artist->setLabel('Artiste')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');
        $this->setAction('/Produit/add')
             ->setMethod('post');
        $this->addElements(array($artist));
        
    
    }
    
}

mon controlleur :

Code:

class Albums_ProduitController extends Zend_Controller_Action
{
   public function addAction()
   {
       //on instancie notre formulaire et on l'envoie a la vue pour l'afficher
        $form = new Albums_Form_Produit();
        $form1 = new Albums_Form_Date();
            $this->view->form = $form;
            $this->view->form1= $form1;
            //une fois le formulaire renvoyé, on verifie la validité des data et on l'affiche
        if ($this->getRequest()->isPost() ) 
        {  
             $formData = $this->getRequest()->getPost();
            $form->populate($formData);
            $form1->populate($formData);
            if ($form->isValid($formData)) {
                
                $data['titre']=$form->getValue('titre');
                $data['artiste']=$form->getValue('artiste');
               
                $data['date_creation']=$form->getValue('date');
                
                echo $data['titre'];
                echo $data['artiste'];
                echo $data['date_creation'];    
            } else {
                $form->populate($formData);
                
            }
             if($form1->isValid($formData)){
                 $data['artist']=$form1->getValue('artist');
                 echo $data['artist'];
                 
             }else {
                $form1->populate($formData);
                
            }
        }
       
  }
}

la vue add.phtml

Code:

<div style="align:right">
    <form name="envoyer" action="<?php echo $this->url(array('controller'=>'produit','action'=>'add'))?>" method="POST">
        
        <input type="submit" name="send" value="suivant"/>


<?php
//on affiche le formulaire deja instancié dans le controlleur

echo  $this->tabContainer()
->addPane("tab1", "Album", $this->form)
->addPane("tab1", "Artiste", $this->form1)
->tabContainer("tab1", array());

?>
 </form>
</div>

ici j'ai eu un problème c'est que je récupère seulement les données envoyées par le formulaire contenue dans la première onglet .
je suis très besoin de votre aide.
merci.

Hors ligne

 

#2 14-05-2013 14:31:20

luffy
Membre
Date d'inscription: 24-04-2013
Messages: 13

Re: activer et desactiver un onglet

tu peut utiliser les fonction hide et show
au depart tu met ton deuxieme onglet a hide et lorsque tu appuye sur ton bouton tu le met a show

Hors ligne

 

#3 14-05-2013 14:35:52

luffy
Membre
Date d'inscription: 24-04-2013
Messages: 13

Re: activer et desactiver un onglet

tu peut aussi le faire avec du css grace a  visibility: hidden et visibility: visible ou encore grace a display:none display: block a toi de voir

Hors ligne

 

#4 15-05-2013 12:16:49

A.amine
Nouveau membre
Date d'inscription: 04-05-2013
Messages: 5

Re: activer et desactiver un onglet

salut,
j'ai essayé cette proposition avec les onglet de zend dojo mais il n a pas marché,je vais ressayé avec cette exemple que j'ai posé.
pour le bouton,lors du clique je dois récupérer le contenue du formulaire que je viens de le remplir.si vous avez un idée comment faire cela.
merci.

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