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>