neinvalidace controleru s formulářem
- masterr
- Začátečník | 141
Zdravím,
mám ArticlePresenter a v něm render metodou:
public function renderDefault($cat_url, $page)
{
......
if ($this->presenter->isAjax())
{
$this->invalidateControl('forumControl');
}
}
a componentu:
protected function createComponentForumControl()
{
.....
return new \ForumControl($this->context, $model, $params, $this->cat_url, $this->page, $this->userid, $this->username);
}
a pak .latte:
....
{snippet forumControl}
{control forumControl}
{/snippet}
...
Je to formulář na přidávání příspěvku do fora. A chci aby se formulář při odeslání komentáře načítal ajaxově. Jenže požadavek se neodešle jako ajax, napadá vás kde by mohl být problém? Díky moc
- masterr
- Začátečník | 141
Přidal jsem to + jsem přidal do jquery.nette.js
$('form.ajax').live('submit', function (event) {
event.preventDefault();
$.post(this.action, $(this).serialize());
});
Myslím si, že bude asi problém v tom javascriptu. Ten kod na ten ajax form jsem tu našel na foru, akorát mi není jasné, proč se to serializuje, to bych to pak měl asi deserializovat? V componentě?
Mělo by to fungovat uplně stejně jako bez ajaxu, akorát by se měla jen překreslit ta část stránky se snipetem, že j? Akorát, že mi tam ten ajax furt nejede, a odešle se to normálně.
Do stránky linkuju netteForms.js a jquery.nette.js
- Mysteria
- Člen | 797
Použij radši https://github.com/…ette.ajax.js pak ti stačí dát jenom $.nette.init(); a mít u odkazů a formulářů, které chceš řešit AJAXově třídu ajax a je to. Samozřejmě nezapomenout na invalidaci snippetů v presenteru. :)
- masterr
- Začátečník | 141
Je to hodně divné, částečně mi to funguje.
Mám tam 2 formuláře, jeden je na odpověd ke komentáři a druhý na založení nové diskuze. Každý má svoji továrničku.
1)Ten na založení diskuze se mi normálně odešle ajaxově, ale pak mi nepřekresli správně šablonu, měl by tam přibýt ten komentář, ale nepřibyde. Když dám F5 tak se tam zobrazí. Součástí toho modulu fora je i metoda createTemplate. Proč se nevykreslí správně?
- Přidání komentáře, funguje tak že kliknu na odkaz a javascriptově vezmu celý form na response a vyměním mu ID, podle toho na jaký příspěvek reaguji. Ale vůbec se neodešle ajaxově, je to tím že jsem ho vzal od někud a vložil jinam? Dochází pak k nějaké špatné inicializaci toho ajax scriptu?
Dík
Editoval masterr (7. 10. 2014 18:28)