Ajax a jednoduché přepsání proměnné
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- JanBE
- Člen | 62
Zdravím,
potřebuji každých x sekund vypisovat záznamy z db (texty, které se střídají).
Mám tedy v ajaxu funkci:
$(document).ready(function(){
setInterval( replikator, 5000);
function replikator(){
$.ajax({
type: "POST",
url: {link change! 'id' => $id_textu},
success: function(data){
$('#content2').html(data);
}
});
}
});
která mi (zatím do divu content2) vrátí co potřebuju (ale jen pro první id_textu, které se mi nepřepisuje). Hnadle:
public function handleChange($id){
$data = array();
$data[0] = $this->model->text_z_db_dle_id($id);
$this->template->text = $data[0];
$this->template->id_textu = $this->model->nextId($id);
$this->redrawControl('chtext');
$this->sendResponse(new Nette\Application\Responses\JsonResponse($data));
}
a šablona:
<div id="content2">
{$text|noescape}
</div>
{snippet chtext}
{$text}
{$id_textu}
{/snippet}
Přes Json se mi tam (do divu) hodnoty dostanou, ale snippet se nepřekreslí. Chtěl jsem si vyzkoušet všechno co by mohlo fungovat, proto mám ten snipet takhle umístěný mimo. Až by fungovalo překreslování byla by ve snippetu ta ajaxová funkce, u který by se měnilo id_textu.
- F.Vesely
- Člen | 369
Prilinkuj si https://componette.org/search/?…
$(document).ready(function(){
setInterval( replikator, 5000);
function replikator(){
$.nette.ajax({
url: {link change! 'id' => $id_textu}
});
}
});
public function handleChange($id){
$this->template->text = $this->model->text_z_db_dle_id($id);
$this->template->id_textu = $this->model->nextId($id);
$this->redrawControl('chtext');
}
Takhle by to melo fungovat.