Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2012, 17:01
Avatar de luna690
luna690
 
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
desplegable con ZEND

Hola, he estado dos semanas buscando y no hay manera!!

Como puedo hacer un desplegable (select) con ZEND des de un fetchall() de una base de datos??

Sólo me sale un elemento en el desplegable (el último!) porqué?

Tengo el controlador:
Código:
public function subprojecteAction(){
        $subprojmod = new Application_Model_DbTable_SubProjecteModel();
        
        //comprovo si estic gestionant un projecte
        if ( isset($_POST['proj_nom']) ){
            if ($_POST['proj_nom']==null || $_POST['proj_descr']==null)
                echo "<span style='color:brown;position:absolute;padding-right:40px;right:0px;font-style:oblique;'>Error de camps incorrectes</span>";
            else{
                $data = array('nom'=>$_POST['proj_nom']);
                $subprojmod->inserirSubProjecte($data);
                
                //despres s'ha de inserir a la BD de la relació
            }     
        } 
        $this->view->subproj = $subprojmod->fetchAll();
        
        $projmod = new Application_Model_DbTable_ProjecteModel();
        $this->view->proj = $projmod->fetchAll();
    }
Tengo el modelo:
Código:
class Application_Model_DbTable_SubProjecteModel extends Zend_Db_Table_Abstract
{

    protected $_name = 'subproj';
Tengo el formulario:
Código:
class Application_Form_SubProjecte extends Zend_Form {

    public function init(){  }
    
    public function __construct($options = null) {
        parent::__construct($options);
        $this->ferForm($options);
    }
    
    public function ferForm($options){
        $this->addElement('text', 'subproj_nom', array(
            'label' => 'Nom de la sub projecte:',
            'required' => true,
        ));
        
        $this->addElement('select', 'proj_id', array(
            'label' => 'Projecte:'
        ));
        
        foreach ($options as $x){
           $arrayLst = array( $x['id'] => $x['nom'] );
        }
              
        
        $this->getElement('proj_id')->setMultiOptions( $arrayLst );
        
        $this->addElement('submit', 'submit', array( 
            'ignore'   => true, 
            'label'    => 'Guardar', 
            ));  
    }
    
}

Y tengo la vista:
Código:
<fieldset><legend>Inserir nou subprojecte</legend><br />
    <?php
        $form_proj = new Application_Form_SubProjecte($this->proj);
        $projmod = new Application_Model_DbTable_SubProjecteModel();
        echo $form_proj; 
    ?>
</fieldset>