NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
CZkiniCZ
Člen
Avatar
CZkiniCZ:20.11.2017 16:08

Ahoj.
Koukám že se tady na to už někdo ptal ale mě se to stále nedaří zprovoznit. Postupoval jsem podle https://componette.com/…tte.ajax.js/

Nalinkoval jsem si do layout.latte

<script src="{$basePath}/js/jquery.js"></script>
<script src="{$basePath}/js/netteForms.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script> {* Nette Ajax depens on jQuery *}
<script src="{$basePath}/js/main.js"></script>

a

$(function(){
        $.nette.init();
});

jsem inicializoval v main.js a nakonec jsem přidat class = "ajax" k submitu:

$form->addSubmit('submit', 'Zpracovat')
              ->setAttribute("class", "ajax")
           ->onClick[] = [$this, 'cvInfoFormSucceeded'];

Podle toho co jsem z toho pochopil by to tet mělo odeslat formulář bez obnovení stránky což se ale nestane, formulář se odešle ale stránka se obnoví. Chtěl bych se tedy zeptat co mi uniká.

Odpovědět
20.11.2017 16:08
Age of the geek.
Avatar
David Klouček:20.11.2017 17:25

Třídu ajax musíš nastavit formu, ne prvku.

Editováno 20.11.2017 17:27
 
Nahoru Odpovědět
20.11.2017 17:25
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na CZkiniCZ
Petr Čech:20.11.2017 18:00

AFAIK to může být i na tom submitu (ačkoliv to patří spíš na form)
Bojoval jsem s tím nějakou dobu také. Nepřesměrováváš uživatele při úspěšném / neúspěšném zpracování? To se totiž přesměrovává automaticky. Je relativně dobrá praktika přidat redirect po úspěšném zpracování non-AJAX requestu, protože potom nehrozí vícenásobné odeslání formuláře, ale pro AJAXové formuláře to moc dobře nefunguje. Pokud bys chtěl nechat přesměrování, musel bys vypnout redirect plugin v nette.ajax.js
Dále je možné, že je něco rozbité... zkus krokovat JS a zjišťovat, jestli ti tam někde vypadávají výjimky. Pokud nechceš krokovat (protože je to upřímně v cizím kódu otrava), zapni si preserve log v konzoli a chyby ti při přesměrování nezmizí.

Nahoru Odpovědět
20.11.2017 18:00
the cake is a lie
Avatar
CZkiniCZ
Člen
Avatar
Odpovídá na Petr Čech
CZkiniCZ:20.11.2017 18:20

Já jsem právě četl že se to dává spíš na ten submit, ale zkoušel jsem to i přímo na formu a to nepomohlo. Redirect nechci (submit je na přidání políčka u kdyby/replicator). Tet jsem koukal na tu konzoli a ukazuje mi to (mimo jiné :D) chybu:

TypeError: $.nette is undefined
Nahoru Odpovědět
20.11.2017 18:20
Age of the geek.
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na CZkiniCZ
Petr Čech:20.11.2017 19:51

Vypadá to, že se ti nenačítá netteForms.js
Nebo něco jiného. Zkus schválně, co ti vyhodí $.nette až se dokončí veškeré načítání

Nahoru Odpovědět
20.11.2017 19:51
the cake is a lie
Avatar
Petr Čech
Tvůrce
Avatar
Petr Čech:20.11.2017 20:14

Nebo spíš řekni, kde ti to padá (je to v konzoli)

Nahoru Odpovědět
20.11.2017 20:14
the cake is a lie
Avatar
CZkiniCZ
Člen
Avatar
Odpovídá na Petr Čech
CZkiniCZ:20.11.2017 20:22

Nejsem si jistý co myslíš.

TypeError: $.nette is undefined
[Zjistit více]
main.js:2:2
<anonymní>
http://localhost/Prometheus/js/main.js:2:2
fire
http://code.jquery.com/jquery-1.7.js:1064:10
fireWith
http://code.jquery.com/jquery-1.7.js:1182:7
ready
http://code.jquery.com/jquery-1.7.js:437:4
DOMContentLoaded
http://code.jquery.com/jquery-1.7.js:927:3

?

Nahoru Odpovědět
20.11.2017 20:22
Age of the geek.
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na CZkiniCZ
Petr Čech:20.11.2017 21:05

Přesně to. Nemáš v network panelu nějaké 404? To vypadá, že se něco prostě nenačte. A kde máš ty skripty? V head, nebo na konci body ?

Nahoru Odpovědět
20.11.2017 21:05
the cake is a lie
Avatar
CZkiniCZ
Člen
Avatar
CZkiniCZ:20.11.2017 21:45

Žádné 404 tam nemám (jednu 500 - bootstrap glyphicons). Skripty jsem zkoušel v head i na konci body.

Nahoru Odpovědět
20.11.2017 21:45
Age of the geek.
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na CZkiniCZ
Petr Čech:21.11.2017 7:08

Hmmm, zvláštní. Zkus to někam nahrát a já se na to podívám. Nebo PM

Nahoru Odpovědět
21.11.2017 7:08
the cake is a lie
Avatar
CZkiniCZ
Člen
Avatar
Odpovídá na Petr Čech
CZkiniCZ:21.11.2017 11:01

Tak už jsem to rozchodil (více méně), použil jsem layout ze svého staršího projektu ve kterém byl naliknovaný kousek js který tomu vadil. Nastal ale další problém a to že mi tet nefunguje ten kdyby/replicator. Stránka se nerefreshne ale nevygeneruje se mi dalsi pole.

Nahoru Odpovědět
21.11.2017 11:01
Age of the geek.
Avatar
CZkiniCZ
Člen
Avatar
Odpovídá na CZkiniCZ
CZkiniCZ:21.11.2017 11:36

Tak na to už jsem taky přišel :D

Nahoru Odpovědět
21.11.2017 11:36
Age of the geek.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.