handler sa vykoná ale snippet sa neprekreslí

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Danndy
Člen | 35
+
0
-

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
+
0
-

snippet se musi nejak zpracovat na strane klienta, muzes pouzit nette.ajax.js

Danndy
Člen | 35
+
0
-

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?