Opa, estamos quase lá... só um detalhe:
Quando eu for chamar minha função na action que carrega a página inteira, ela 
deve retornar a view, já no AJAX, ele deve dar um "echo" para que o conteúdo 
seja impresso.

Exemplo:

class Cliente extends Controller {
 function exibe() {
  $div['dados'] = Cliente::cidades();
  $this->load->view('divHTML', $div);
 }

 function cidades() {
  $dados = $this->modelo->carrega();
  $pagina = $this->load->view('divHTML', $dados, true);
  return $pagina;
 }
}

Já no ajax, quando eu fosse chamar minha página localhost/cliente/cidades, ele 
deve já retornar o HTML imprimido pra eu jogar na div.

No caso eu teria que fazer um tratamento parecido com o do método view (pra 
decidir se deve retornar ou imprimir o resultado), correto? Ou eu posso criar 
um terceiro método apenas para imprimir o retorno do cidades();

De qualquer jeito creio que já dá pra resolver. Obrigado pela ajuda, Vinicius e 
Andrey.
  ----- Original Message ----- 
  From: Vinicius Cruz 
  To: CodeIgniter Brasil 
  Sent: Tuesday, December 16, 2008 2:18 PM
  Subject: Re: [CodeIgniter] Executando controllers a partir de uma view


  Isso. É como se você criasse um view pra intermediar o processo.


  2008/12/16 Andrey Wischneski <[email protected]>

    Bom, aí você pode montar a view dentro de uma variável e jogá-la dentro da 
div, por exemplo:

    $pagina = $this->load->view('divHTML', $data, true);

    Onde $data são os dados que você envia para montar o código HTML para 
inserir na div.
                    
    $ajax->Assign("DIV","innerHTML", $pagina);






    2008/12/16 Eric Saboia (Fortes Informatica) <[email protected]>

      Mas ai na própria função eu já vou ter que inserir todo o código HTML que 
deve retornar pra DIV? eu tinha feito uma action e uma view, a action 
renderizava a view e aplicava os dados vindos do banco. Nesse caso eu teria que 
aplicar todo o HTML direto na action?
        ----- Original Message ----- 
        From: Andrey Wischneski 
        To: CodeIgniter Brasil 
        Sent: Tuesday, December 16, 2008 9:19 AM
        Subject: Re: [CodeIgniter] Executando controllers a partir de uma view


        Então, amigo, você pode chamar normalmente uma função na inicialização 
do seu controle...

        exemplo:

        function popula_div() //função ajax, que vai utilizar a mesma 
biblioteca para retornar dados para popular a div...
        {
           $conteudo = $this->library->funcao();
           div.innerhtml = $conteudo;
        }

        function index() //Função de inicialização do controle
        {
            $data['conteudo'] = $this->library->funcao(); //Dentro de uma 
biblioteca, chama uma função que retornará dados para popular a div, passando a 
variável $data['conteudo'] para a view.    
            $this->load->view('view',$data);
        }


        Obs: o exemplo ficou meio porquinho, mas acho que da pra entender...

        Não sei se entendi exatamente o que você precisa, mas tenho certeza que 
utilizando o codeigniter é possível fazer...





        2008/12/16 Eric Saboia (Fortes Informatica) 
<[email protected]>

          O problema não é utilizar ajax, o problema é que quando carrego 
determinada página, uma div já deve vir preenchida com um conteúdo que será 
repopulado via ajax após uma determinada ação. Ou seja, ao carregar determinada 
página, eu preciso "incluir" uma action. Após alguma ação, essa mesma action 
será chamada via ajax. Deu pra entender?

          Descrição do método no ZF:

          53.4.1.1. Action View Helper

          The Action view helper enables view scripts to dispatch a given 
controller action; the result of the response object following the dispatch is 
then returned. These can be used when a particular action could generate 
re-usable content or "widget-ized" content.

          Actions that result in a _forward() or redirect are considered 
invalid, and will return an empty string.

          The API for the Action view helper follows that of most MVC 
components that invoke controller actions: action($action, $controller, $module 
= null, array $params = array()). $action and $controller are required; if no 
module is specified, the default module is assumed. 
            ----- Original Message ----- 
            From: Vinicius Cruz 
            To: CodeIgniter Brasil 
            Sent: Monday, December 15, 2008 9:22 PM
            Subject: Re: [CodeIgniter] Executando controllers a partir de uma 
view


            Bom, não entendi muito bem o que estás precisando fazer, mas quando 
uso ajax, por meio do jquery, chamo o endereco de um método do controller 
normalmente....



            2008/12/15 Eric Saboia (Fortes Informatica) 
<[email protected]>

              Olá, pra quem conhece o ZF, tenho o método action, que pode ser 
usado desta forma:
              $this->action('controller', 'action', 'parametros');

              É uma espécie de include, que chama um controller/action e é 
possível passar parâmetros.

              Pra que isso? tenho em minha view uma div que recarrega via ajax 
ao submeter certo formulário, mas quando carrego a view, essa div já deve vir 
preenchida com o devido conteúdo, pra isso eu precisaria invocar uma action do 
mesmo controller que renderizou a view.

              Deu pra entender? tem algo assim no CI que possa me ajudar ou 
terei que gambiarrizar? ;D
              Obrigado!

              Eric Saboia
              Desenvolvimento Web
              Fortes Informática (Fortaleza)
              Fone: (85) 4005-1111
              [email protected]
              www.grupofortes.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





    _______________________________________________
    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

Responder a