handler sa vykoná ale snippet sa neprekreslí
- Danndy
- Člen | 35
Zdravím vás.
S Ajaxom len začínam a mam nasledovný problém. Na webe mám obsah ktorý
chcem hodnotiť a pridávanie hodnotenia sa snažim ajaxovať. Keď kliknem na
„hviezdičky“ ktoré služia na pridanie hodnotenia nič sa nestane no
hodnotenie sa pridá, len snippet sa neprekreslí.Keď obnovím stránku,
hodnotenie uživatela sa ukáže. Kód mám nasledovný
presenter:
protected function startup()
{
parent::startup();
.
.
$this->template->u_rating = $this->ratings->findUserRanting($this->getParameter('gid'),$this->getUser()->id);
.
.
}
public function handleAddRating($gid,$hodnota)
{
if (!$this->user->isLoggedIn())$this->redirect('Login:');
if($this->ratings->findUserRanting($gid,$this->getUser()->id))$this->redirect('Hra:',$gid);
$this->ratings->addRating($gid,$this->getUser()->id,$hodnota);
$this->template->u_rating = $this->ratings->findUserRanting($gid,$this->getUser()->id);
if($this->isAjax()){
$this->redrawControl('rating');
}
}
v šablone mám snippet kde vystupuje premenna ‚u_rating‘
{snippet rating}
<div class="module-header-small">
{if $u_rating} Vaše hodnotenie: (<a href="{link Hra:removeRating $game->game_id}">vymaž</a>){else} Ohodnoť hru: {/if}
</div>
<div class="module-content">
{if $u_rating}
<div class="number-rating">{$u_rating->rating_value}/10</div><div class="star-rating"><div class="stars-blue-big" style="width: <?php echo $u_rating->rating_value*12.5 ?>px"></div></div>
{else}
<ul class="star-rating">
<li><a href="{link addRating! $game->game_id,1}" title="1 star out of 10" class="one-star ajax">1</a></li>
.
.
.
<li><a href="{link addRating! $game->game_id,10}" title="10 stars out of 10" class="ten-stars ajax">10</a></li>
</ul>
{/if}
</div>
{/snippet}
jQuery.nette.js + táto funkcia
<script>
$("a.ajax").click(function(){
$.get(this.href);
return false;
});
</script>
Za odpovede vopred Ďakujem!
- David Matějka
- Moderator | 6445
snippet se musi nejak zpracovat na strane klienta, muzes pouzit nette.ajax.js
- Danndy
- Člen | 35
matej21 napsal(a):
snippet se musi nejak zpracovat na strane klienta, muzes pouzit nette.ajax.js
Dik za odpoveď. Ja som vychádzal z videocastu a tam sa použivalo jQuery.nette.js , každopádne spravil som livesearch pre input a tam mi to funguje správne, snippet sa prekreslí. Tak prečo nie aj v tomto prípade?