Jak elegantně volat fci modelu z JQuery?

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

Ahoj,

hraji si dnes s JQuery a sortable listama a chtěl bych pomocí metody

<script>
$.post("update.php", order, function(callback){...});
</script>

odeslat seznam nového pořadí na patřičnou metodu modelu v Nette.

Otázka zní, jak elegantně volat model z Nette struktury z takovéhoto skriptu? Na modely mám modelloader, načítám je automaticky. Napadají mě samé čuňárny, jako v tomto update.php vytvořit model manuálně a zavolat nad ním patřičnou metodu…

Za náměty děkuji :)

bojovyletoun
Člen | 667
+
0
-

nerval bych tam url, $.post({link order!}. post bude obsahovat např pole theList a v presenteru budeš mít function handleOrder($theList). Doufám, že to bude fungovat.

pidiclovek
Člen | 91
+
0
-

@bojovyletoun Díky za potvrzení správného směru, signálem to akorát zkouším, až příliš pozdě mi došlo nenačítat skript externě ale dát ho rovnou do šablony a link v něm vygenerovat… Nicméně toto funguje velice dobře :)

Filip Procházka
Moderator | 4668
+
0
-

Můžeš svůj script ještě vylepšit, pokud ho vyndáš ze šablony, odkaz zapíšeš třeba takto

<div class="sortable-list" data-ajax-sortable="{link order!}">
...
</div>

Pomocí jQuery si pak takovou informaci můžeš načíst

var url = $('sortable-list').data('ajax-sortable');

a pak použít v ajaxovém requestu

$.post(url, order, function(callback){ ... });

Výsledkem bude validní HTML5 kód a javascript bude tam kam patří, v externím souboru.