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

Responder a