ajax jak vložim data do snippetu

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

Ahoj,

potřebuji do snippetu vypsat něco do snippetu comments. Je to klik na div, ne na odkaz (v divu se nachází další odkazy, takže to nemůže být odkaz ;))

AJAX se mi daří používat místo normálních odkazů nebo při odesílání formulářů, ale tohle se mi nedaří. Zkusím nastínit, jak jsem to dělal (mám div s id)

<div class="item{if $iterator->first}_first{/if}" id="{$item->id}">

     {!$item->text|itemProccessRead}

</div>

Potom mám CommentsPresenter, který má jen renderDefault (první dotaz vlastně, jak mu předám parametr?), ten kromě toho, že nahází ty věci do šablony, jak potřebuji, tak teď dělá:

if ($this->isAjax())
      $this->invalidateControl('comments');

A pak JS:

$("div.item").live("click", function (event) {
    event.preventDefault();

    $.get("../comments");
});

K tomuhle mám také dotaz, tady asi vůbec není dobré použít takhle relativní cestu, jak to obejít? :)
A je tahle cesta dobrá? Případně, jak na to jít jinak (k čemu slouží payload?)?

Díky za rady

studna
Člen | 181
+
0
-

A co třeba něco takového:

<div data-href="{link ...}" class="item">
	..
</div>

<script>
	$("div.item").live("click", function (event) {
    		event.preventDefault();
		$.get( $(this).data('href') );
	});
</script>
newPOPE
Člen | 648
+
0
-

@studna ma v podstate pravdu. No klikom na div by som sa vyhol nakolko mas este v nom dalsie odkazy. Skor by som to riesil cez ovladaci prvok (odkaz) ktory potom mozes pouzit uplne standardne.

Cize mas div a k nemu ovladaci a, a-cku nastavis normalne n:href ktory parametrizujes ako potrebujes. A napises k nemu JS handler na click…

S tym parametrom mi to nie je jasne. Pokial chces dostat parameter do requestu aby si k nemu mohol pristupit v Presenteri tak opat klasika

dajme tomu ze:

<a n:href="Xyz:default param1=>param1, param2=>param2">click me!</a>

s tymi parametrami, potom kludne pracujes v app (presenteroch)

public function renderDefault($param1, $param2) {}

este tip ;-)

<div n:class="$iterator->first?item_first:item">