AJAXové odkazy
- suxik
- Člen | 62
Ahoj, mam menu polozek PolozkaA, PolozkaB, PolozkaC a chci, aby jeho odkazy fungovaly AJAXove, ale pri zapnutem AJAXu se mi nenastavi dany presenter PresenterPolozkaA, PresenterPolozkaB nebo PresenterPolozkaC. Bez AJAXu Nette vse udela jak ma (zobrazi dany presenter) ale s AJAXem se pouze zpracuje pozadavek, prijme se dany obsah (vidno ve Firebugu), ale nenastavi se presenter. Jak to tedy udelat s AJAXem?
Editoval suxik (3. 2. 2010 18:58)
- suxik
- Člen | 62
snippet tam mam, kod sablony:
<?php
@{block content}
{snippet list}
{foreach $items as $item}
<h2>{$item->name}</h2>
{/foreach}
{/snippet}
{/block}
?>
pouzivam komponentu TreeView se zapnutym AJAXem (pri vypnutem vse OK)
Kod jquery.nette.js:
<script>
jQuery.extend({
nette: {
updateSnippet: function (id, html) {
$("#" + id).fadeTo("fast", 0.01, function () {
$(this).html(html).fadeTo("fast", 1);
});
},
success: function (payload) {
// redirect
if (payload.redirect) {
window.location.href = payload.redirect;
return;
}
// snippets
if (payload.snippets) {
for (var i in payload.snippets) {
jQuery.nette.updateSnippet(i, payload.snippets[i]);
}
}
}
}
});
jQuery.ajaxSetup({
success: jQuery.nette.success,
dataType: "json"
});
$("a.ajax").live("click", function (event) {
event.preventDefault();
$.get(this.href);
});
</script>
- Honza Kuchař
- Člen | 1662
Překreslování snippetů nejde používat napříč presentery. Pokud chceš, můžeš postavit aplikaci pod jedním presenerem a pod ním mít strom komponent (component-based application)
- suxik
- Člen | 62
no nejak nevim, jak bych to jako component-base seskladal. Mam klasicke top-menu s odkazy na kontakty, informace atd. a v leve casti stromove menu vyrobku (podobne jako to ma napr. czc.cz) – hornimi odkazy se odkazuji na jednotlive presentery (f-a-q, kontakt atd.) ale stromovym menu chci po kliknuti na polozku zobrazit vyrobky dane kategorie v presenteru item-list a tam mi to prave nefunguje s ajaxem (dana tabulka ohranicena snippetem se mi neprekresli, ackoli ji v presenteru invaliduji)
A jak mam resit generovani odkazu na detail vyrobku? chci predat pouze id. Udelal jsem dalsi presenter ItemDetail, a odkazy volam v sablone takto, ale nefunguje to:
<?php
{plink ItemDetail, $item->id}
?>