Excelente idéia! Obrigado.
----- Original Message -----
From: "Edinho Almeida" <[email protected]>
To: "CodeIgniter Brasil" <[email protected]>
Sent: Tuesday, December 16, 2008 3:13 PM
Subject: Re: [CodeIgniter] Executando controllers a partir de uma view
Eu tenho um helper
request_helper.php
<?php
function is_ajax()
{
return (
isset($_SERVER['HTTP_X_REQUESTED_WITH'])
AND
$_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'
);
}
aí uso assim:
function cidades() {
$dados = $this->modelo->carrega();
$pagina = $this->load->view('divHTML', $dados, true);
if(is_ajax()){
echo $pagina;
}else{
return $pagina;
}
}
Abs
Edinho Almeida
11 8018-8019
2008/12/16 Eric Saboia (Fortes Informatica) <[email protected]>:
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
_______________________________________________
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