Visualizzazione dei risultati da 1 a 4 su 4

Discussione: form zend framework

  1. #1

    form zend framework

    Salve a tutti, sto iniziando ad utilizzare zend ed il primo problema che sto avendo è quello di recuperare di dati di una form.

    Ho creato correttamente la form e la passo alla vista. Si visualizza correttamente ed ora vorrei recuperare i dati inviati tramite un altro controller non lo stesso con il quale richiamo il form.

    Vi posto un pò di codice in modo da farvi capire quello che sto facendo...

    form.....

    codice:
    class Application_Form_GetNumeri extends Zend_Form
    {
    
        public function init()
        {
           $this->setName('numeri');
    
           	$this->setAction('../numeri/sottonumeri');
            
           	$id_numeri = new Zend_Form_Element_Text('id_numeri');
            $id_numeri->setLabel('id_numeri')
                   ->setRequired(true)
                   ->addFilter('StripTags')
                   ->addFilter('StringTrim')
                   ->addValidator('NotEmpty')
                   ->setAttrib('class', 'pippo');
    
    
            $tip_g = new Zend_Form_Element_Text('tip_g');
            $tip_g->setLabel('tipologia')
                   ->setRequired(true)
                   ->addFilter('StripTags')
                   ->addFilter('StringTrim')
                   ->addValidator('NotEmpty')
                   ->setAttrib('class', 'pippo');
                   
     
            $submit = new Zend_Form_Element_Submit('submit');
            $submit->setAttrib('id', 'submitbutton');
    
            $this->addElements(array($id_numeri, $tip_g, $submit));
        	    }
    
    }
    index controller

    codice:
    class IndexController extends Zend_Controller_Action
    {
    
        public function init()
        {
            /* Initialize action controller here */
        }
    
        public function indexAction()
        {
    
        }
    
    
        public function numeriAction()
        {
          	$form = new Application_Form_Numeri();
    		$this->view->form = $form;    
        }
        
        
        
    }
    vista numeri....

    codice:
    <?php echo $this->form ;  ?>

    adesso invece implemento il cntroller numeri con il metodo sottonumeri


    codice:
    class NumeriController extends Zend_Controller_Action
    {
    
        public function init()
        {
    
        }
    
        public function indexAction()
        {
            // action body
        }
    	
    
        public function sottonumeriAction()
        {
    
            $data = array(
        				'tip_g' => $form->getValue('tip_g'),
        				'id_numeri' => $form->getValue('id_numeri')
            		);
        	
    		$this->view->data = $data;
        }
    }

    Vista dove stampo i dati:

    codice:
    	echo '[*]tip_g: '.$this->tip_g.'';
    	echo '[*]id_numeri: '.$this->id_numeri.'';
    Come dicevo prima la parte iniziale funziona, fino a quando compilo il form e lo invio il tutto è ok.
    sicuramente il modo in cui recupero i dati non va bene...
    La stampa dei dati è corretta?

    Qualcuno mi da una mano?

    Grazie Frank

  2. #2
    Qualche aiutino?
    Grazie

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    nel tuo sottonumeriAction tanto per cominciare non hai istanziato il form da nessuna parte,
    quindi dovresti ricevere un errore tipo 'Call to a member function on a non-object'.

    Inoltre per recuperare i valori da un form prima dovresti passarglieli, il codice qui di seguito dovrebbe chiarirti all'incirca come funziona, per approfondire il discorso ti consiglio di andare nella documentazione ufficiale

    Codice PHP:
            $form = new My_Form();
            
            if(
    $this->getRequest()->isPost()) {
                
    $isValid $form->isValid($this->getRequest()->getPost());
                
                if(
    $isValid) {
                    
    $values $form->getValues();
                
                           [...]
                }
            }
            
            
    $this->view->form $form

  4. #4
    Ciao, grazie per la tua risposta.

    Probabilmente mi sono espresso male nella richiesta.

    Ho settato l'action del form in questo modo

    codice:
    $this->setAction('../numeri/sottonumeri');
    Diciamo che ho il controller 1 che mi presenta il form, poi tramite l'action del form vado al controller 2 /sottonumeri. E' qui che mi interessa elaborare i miei dati.

    Comunque proprio adesso cercando e ricercando ho trovato quello che mi serviva.

    codice:
    $variabile = $this->getRequest()->('variabile', null);
    In questo modo riesco a recuperare il dato proveniente dal form.

    Non so se è il metodo migliore, se hai qualche sggerimento a riguardo.
    Grazie
    F

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.