Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ja li em outras listas de discução e resolvi postar aqui também uma divida que ainda tenho que é o uso de combos dinâmicos no zend form. Nem precisa pesquisar muito pra conseguir implementar esse recurso de forma não Orientada a Objetos com jQuery no PHP, mas quando se trata de Zend Form, Models + Ajax nunca consegui usar esse recurso que da uma facilidadde enorme no uso de aplicaçãoes.
Se alguém souber, compartilhe conosco.
>
Você quer criar um combo com dados vindo do banco de dados usando o Zend_Form, certo?
Não tem segredo nenhum , primeiro você pega os dados do banco de dados, pode ser usando uma model ou dbtable, vai depender de como você organiza a aplicação.
Depois você vai populando o combo com os dados do banco de dados.
Exemplo:
// cria um elemento do tipo select
$cities = new Zend_Form_Element_Select('cities');
$cities->setLabel('Cidade:');
// suponha que esse array contenha os registros que você resgatou do banco de dados
$rows = array();
// adiciona as linhas retornadas do banco de dados no select
foreach ($rows as $row) {
$cities->addMultiOption($row['id'], $row['name']);
}
// por fim adiciona o elemento ao formulário (junto com os demais elementos)
$this->addElements(array($cities));
Onde tem o array $rows, você chama a model ou dbtable que vai retornar o array com os dados do banco de dados. /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/wink.gif&key=0566fd943552bcff9cb1b879403ca34b5ff8f67befaac7fe4648006e9f764689" alt="wink.gif" />
No meu caso eu tenho 2 elementos Departamento (pai) e Categorias (filhas) e as filhas tem que depender do pai.
public function init() {
$this->setMethod('post');
$this->setAttrib('enctype', 'multipart/form-data');
$departamentos = new Application_Model_Departamento();
$departamentosSelect = $this->createElement('select','departamento',array('label' => 'Departamento'))->setRequired(true);
$departamentosSelect->addMultiOptions(array('' => 'Selecione o departamento'));
$departamentosSelect->addMultiOptions($departamentos->fetchPair());
$this->addElement($departamentosSelect);
$categorias = new Application_Model_Categoria();
$categoriasSelect = $this->createElement('select','categoria',array('label' => 'Categoria'))->setRequired(true);
$categoriasSelect->addMultiOptions(array('' => 'Selecione a categoria'));
$categoriasSelect->addMultiOptions($categorias->fetchPair());
$this->addElement($categoriasSelect);
(...)
Dessa forma carrega todas as categorias, no caso a necessidade é que carregue as referentes ao departamento selecionado.
Também estou com essa duvida. Ajudem ai...
Você quer criar um combo com dados vindo do banco de dados usando o Zend_Form, certo?
Não tem segredo nenhum , primeiro você pega os dados do banco de dados, pode ser usando uma model ou dbtable, vai depender de como você organiza a aplicação.
Depois você vai populando o combo com os dados do banco de dados.
Exemplo:
Onde tem o array $rows, você chama a model ou dbtable que vai retornar o array com os dados do banco de dados. /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/wink.gif&key=0566fd943552bcff9cb1b879403ca34b5ff8f67befaac7fe4648006e9f764689" alt="wink.gif" />