Concordo com o Marcus. Essa função deveria estar num model. Que passava o array para o controller e por sua vez para a view. Na view só tem de chamar o form_dropdown. Acesso a base de dados fora do model é sempre má prática.
Vx 2009/2/2 Marcus Cavalcanti <[email protected]> > Bem, se vc do seu helper precisa acessar alguma função que faz acesso a > dados, então há alguma coisa de errado. > > Sugiro que você reveja isso, pois essa solução não é a ideal. > > Abs > > 2009/2/2 Vinicius Cruz <[email protected]> > > Bom, eu desenvolvi um helper proprio de combo, mas somente para tratar a >> consulta do banco, retornando um array. O array retornado passo para o view >> e chamo a função form_dropdown(). >> >> Posso disponibilizar depois, caso deseje. Só não sei se está perfeito (em >> termo de programação), mas me atende tranquilamente. >> >> Vinicius >> >> >> 2009/2/1 Julio Cesar <[email protected]> >> >>> Olá, opa é uma ótima dica essa, o único defeito deste dropdown para mim, >>> é que eu precisaria, fazer o SELECT do banco de dados de qualquer forma e >>> depois jogar em uma array, e fazer isto na view de jeito nenhum né :D >>> Então a própria função do helper já faz todo o trabalho, bastando na view >>> chamar a função com os parâmetros e pronto :D A questão do: "*fazer >>> echo "<select>" ... bla bla bla.*" só se faz necessário no helper ou >>> seja, a função é implementada e pronto depois é só chamar * <?php >>> combo_cria('tabela','campo');?>* na view e a função se encarrega de >>> todo o trabalho. >>> Quanto a este helper, até já implementei a questão da array para mostrar >>> no combo mais de um campo da tabela, e agora com este dropdown, vi mais uma >>> questão interessante de ser implementado que seria de "dizer" qual opção >>> deveria vir selecionada :D >>> Mas é isso ae, fazendo e aprendendo.... :D >>> Vlw >>> >>> >>> 2009/2/2 Beto <[email protected]> >>> >>> nao sei se ajudaria ainda , mas o helper Form cria os select de form >>>> facil, entao vc nao precisaria fazer echo "<select>" ... bla bla bla. >>>> >>>> na documentacao do helper form procura por:form_dropdown() >>>> []'s >>>> >>>> - - - - - - - - - - - - - - - - - - - - - >>>> Luiz Alberto S. Ribeiro [ Beto ] >>>> http://beto.euqueroserummacaco.com >>>> >>>> >>>> 2009/2/1 Julio Cesar <[email protected]> >>>> >>>> Douglas! Perfeito era isso mesmo que eu estava precisando. Deu certo o >>>>> helper :D >>>>> >>>>> Vou compartilhar aqui como que ficou a função: >>>>> >>>>> * function combo_cria($tcTabela,$tcCampo){ >>>>> >>>>> $ci = & get_instance(); >>>>> >>>>> $rQuery = $ci->db->get($tcTabela); >>>>> echo "<select>"; >>>>> foreach ($rQuery->result() as $row){ >>>>> echo "<option>". $row->$tcCampo ."</option>"; >>>>> } >>>>> echo "</select>"; >>>>> }* >>>>> >>>>> Basta criar o helper no caso o arquivo *combo_helper.php* (Claro que >>>>> crie o arquivo decente não só com a função :D) >>>>> Depois para carregar o helper chamar assim: * >>>>> $this->load->helper('combo');* >>>>> E então para usar ele no seu view faça assim: * <?php >>>>> combo_cria('tabela','campo');?> * >>>>> >>>>> Está ae a dica. >>>>> Algumas coisas que poderiam ser melhoradas: >>>>> 1. Fazer o combo ter uma opção em branco. >>>>> 2. No parâmetro tcCampo tornar possível passar uma array para múltiplos >>>>> campos.... >>>>> 3. Criar um parâmetro para uma condição WHERE, algo assim. >>>>> >>>>> Bem mas essas dicas estão ae só para quem quiser implementar algo mais >>>>> prático :D >>>>> >>>>> >>>>> >>>>> >>>>> 2009/2/1 Douglas G. Souza <[email protected]> >>>>> >>>>> Júlio, >>>>>> >>>>>> Você pode usar da seguinte maneira: >>>>>> >>>>>> $ci = & get_instance(); >>>>>> $ci->db->get('tabela'); >>>>>> >>>>>> E isso pode ser usado para qualquer outra classe dentro da instância >>>>>> do CI. >>>>>> >>>>>> >>>>>> >>>>>> Julio Cesar escreveu: >>>>>> >>>>>> Olá, pessoal, estou fazendo um helper que cria um combo dos registros >>>>>> de uma tabela, só que estou como um problemão. >>>>>> Pois como que uso a classe db em um helper? >>>>>> Porque eu não posso usar assim: $this->db->get('tabela'); Porque >>>>>> na verdade o $this aqui não existe. Então a pergunta >>>>>> seria, como que eu posso usar as classes do CI como a db em um >>>>>> Helper? Dei uma olhada nos outros helpers, nenhum usa classe db >>>>>> Como poderia fazer? >>>>>> >>>>>> Obrigado pela atenção. >>>>>> >>>>>> ------------------------------ >>>>>> >>>>>> _______________________________________________ >>>>>> Lista mailing >>>>>> [email protected]http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Lista mailing list >>>>>> [email protected] >>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> Lista mailing list >>>>> [email protected] >>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Lista mailing list >>>> [email protected] >>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >>>> >>>> >>> >>> _______________________________________________ >>> Lista mailing list >>> [email protected] >>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >>> >>> >> >> _______________________________________________ >> Lista mailing list >> [email protected] >> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br >> >> > > > -- > Marcus Cavalcanti > 21 9144-5068 > www.marcuscavalcanti.net/blog > > _______________________________________________ > Lista mailing list > [email protected] > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br > >
_______________________________________________ Lista mailing list [email protected] http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

