Ajax request – update v databázi
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- mara11
- Člen | 42
Mám v aplikaci možnost hlasování, uživatel klikne na dokaz, provede se v databázi update +1 a zobrazí se ve stránce výsledek. Snažil jsem se to udělat přes ajax, aby se mi nerefreshovala celá stránka ale jen proměnná toho skóre.
Komponenta:
class ScoreComponent extends BaseComponent {
private $score;
private $subject;
public function handleScore($id) {
$this->reviewModel->updateScore($id);
if ($this->presenter->isAjax()) {
$this->invalidateControl();
}
else {
$this->redirect('this');
}
}
public function render($subjectId) {
$this->score = $this->reviewModel->getSubjectScore($subjectId);
$this->subject = $this->reviewModel->getSubjectById($subjectId);
$template = $this->template;
$exists = dirName(__FILE__)
.DIRECTORY_SEPARATOR.'templates'
.DIRECTORY_SEPARATOR.'score.latte';
$template->setFile($exists);
$template->score = $this->score;
$template->subject = $this->subject;
$template->render();
}
}
score.latte
{block content}
There will be something beautiful with css here!
Name: {$subject['name']}
Description: {$subject['description']}
{snippet}
Score of subject: {$score}<br>
<a n:href="score!" class=ajax>obrazek</a>
{/snippet}
{/block}
Při kliknutí na odkaz se dotaz nevykoná, nic se neděje. Nějaké rady?