Olá, tentei da seguinte maneira no controller:

*function getValoresFK()
    {
            $data['formatos'] = $this->shows_m->listaFormatos();
            $data['status'] = $this->shows_m->listaStatus();
            return $data;
    }*

E usei da seguinte forma

*    function inserir()
    {
        if ($this->form_validation->run('shows'))  //executa a validação
baseada nas regras definidas no arquivo de configuração
        { //se passou pela validação insere no banco
            $data = $this->pegaValoresPost(); //pega os valores dos campos
que foram postados
            $this->shows_m->inserir($data); //insere no banco utilizando o
modelo
            redirect('shows'); //redireciona após inserir
        } //fecha IF do form_validation
        else //exibe o formulário
        {
            //zera os valores dos campos
            $data['cod_show'] =  '';
            $data['status_show'] =  '';
            $data['nome_show'] = '';
            $data['formato_show'] = '';

            $data['action'] = 'inserir'; //adiciona uma ação ao formulário

            //busca os valores que serão usados como FK
            /*$data['formatos'] = $this->shows_m->listaFormatos();
            $data['status'] = $this->shows_m->listaStatus();*/
            $data = $this->getValoresFK();

            $this->load->view('form_shows', $data); //carrega a view
        } //fecha ELSE do form_validation
    } //fecha a função INSERIR*


A minha view está assim:
*
<select name="formato_show" id="formato_show" >
   <option value=""></option>
        <?php foreach ($formatos as $formato) :?>
                <option value="<?= $formato->cod_formato; ?>" <?=
set_select("formato_show", $formato->cod_formato, ($formato_show ==
$formato->cod_formato)); ?> ><?= $formato->nome_formato; ?></option>
        <?php endforeach;?>
</select>*

Só que dessa forma ele não reconhece as minhas outras variáveis que estavam
armazendas em $data, tipo:

*$data['cod_show'] =  '';
$data['status_show'] =  '';
$data['nome_show'] = '';
$data['formato_show']*

E a minha view aparece toda desconfigurada, com mensagens do tipo: *Message:
Undefined variable: status_show*


2009/3/21 Beto <[email protected]>

> ola acho q seu problema deve esta relacionado ao escopo, ou seja do
> jeito q vc postou a variavel $data existe dentro do metodo apenas e
> por isso os selects vem em branco quando a view e carregada.
>
> tente dentro do metodo q vc não q re-escrever usar um return $data e
> recuperar esse return em uma variavel qualquer q sera passada p view.
>
> desculpe p n mostrar exemplos reais + qdo acesso o mail pelo telefone
> o email anterior não e exibido.
>
> caso vc n tenha compreendido o q tentei falar responde essa thread q
> tento te mandar um exemplo pratico.
>
> abzs
>
> On 3/21/09, Guilherme Soares <[email protected]> wrote:
> > Olá, sou iniciante no CodeIgniter e estou com uma dúvida aqui em um CRUD
> > simples q estou montando.
> >
> > Eu tenho um método inserir que em certo ponto utiliza um model para
> buscar
> > os valores que serão usados nos selects do meu form. Estou chamando ele
> da
> > seguinte forma:
> >
> > *$data['formatos'] = $this->shows_m->listaFormatos();
> > $data['status'] = $this->shows_m->listaStatus();
> >
> > $this->load->view('form_shows', $data);*
> >
> > Tudo funciona perfeitamente, porém eu tenho outro método chamado alterar
> e
> > nele eu também preciso dos valores para montar os selects. Mas eu tenho
> que
> > reescrever o trecho de código mostrado acima.
> >
> > O que eu queria é *NÃO ter que reescreve*r esse trecho de código. Tentei
> > criar um método para pegar esses valores, ficou assim:
> >
> > *function getValoresFK()
> > {
> >    $data['formatos'] = $this->shows_m->listaFormatos();
> >    $data['status'] = $this->shows_m->listaStatus();
> > }*
> >
> >
> > Dessa forma eu escreveria o código apenas 1 vez e chamaria esse método
> > dentro dos outros métodos. Estou chamando da seguinte forma:
> >
> > *$this->getValoresFK();
> > $this->load->view('form_shows', $data);*
> >
> > Só que infelizmente ele não funciona da maneira esperada. Aparentemente
> ele
> > não está chamando o método getValoresFK() pois qdo carrego a view os
> selects
> > ficam todos em branco.
> >
> > Bem, não sei se consegui expressar o meu problema da forma correta. Se
> > alguém puder me ajudar eu agradeceria.
> >
>
>
> --
> - - - - - - - - - - - - - - - - - - - - -
> Luiz Alberto S. Ribeiro [ Beto ]
> http://beto.euqueroserummacaco.com
>
> _______________________________________________
> 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