Olá pessoal,
quero saber como posso fazer para atualizar via ajax chamando um controller (como normalmente é feito).
Agradeço desde já.
Olá pessoal,
quero saber como posso fazer para atualizar via ajax chamando um controller (como normalmente é feito).
Agradeço desde já.
Acácio,
Depende da finalidade, se deseja que a cada segundo busca os resultados alterados. Você vai precisar criar uma tarefa cron para alterar os dados, e uma função em javascript que se chama setTimeout().
Eu fiz uma vez um site de leilão com contagem regressiva, vo postar o código javascript, ai você vai entender um pouco o funcionamento.
ar timerI = null;
var timerR = false;
function stopLance(){
if(timerR)
clearTimeout(timerI)
timerR = false;
}
function startLance(){
stopLance();
f1();
}
function f1(){
$.ajax({
type: 'GET',
url: '_refresh.php', // aqui você adiciona a URL do seu controller com sua action
dataType: 'json',
cache: false,
success: function(data){...}
});
timerI = setTimeout("f1()", 1000);
timerR = true;
}
Colocar em um arquivo .js e adiciona a página principal no body.
<body onload="javascript:startLance();">
Deu uma clareada no que eu preciso. Mas ele irá atualizar a página toda ou só uma div? Eu estou fazendo uma aplicação de pedidos, onde esses pedidos serão atualizados a cada segundo, sendo que não dê refresh na página toda, somente na div.
No caso eu colocaria
onload="javascript:startLance();"
na DIV que eu quero que atualize?
Obrigadão cara pela atenção.
Acácio,
Está usando CGridView ou CListView?
Case esteja usando um dos dois, no $.ajax() faz assim:
$.ajax({
type: 'GET',
url: '_refresh.php', // aqui você adiciona a URL do seu controller com sua action
dataType: 'json',
cache: false,
success: function(data){
$.fn.yiiGridView.update('table-grid');
}
});
No ‘success’ que você vai estipular o que deseja atualizar, uma div, um gridview, um listview.
Sobre o onload, coloca somente no <body> que estipula que ele só vai ler(load) a função depois que toda a página estiver carregada.
Newerton, obrigado cara pela ajuda. Vou testar aqui, ai posto como eu fiz.
Que Deus te abençoe.
Até mais!