Diskuze: Ajax Nette
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj, tak nejdřív pro pořádek. Pro AJAX v Nette Ti stačí mít pouze
jQuery, nette.ajax.js, u daného formuláře
class="ajax"
a ten init skript, co jsi sem
posílal.
Knihovnu nette.forms.js do toho tahat vůbec nemusíš pokud ji nepotřebuješ. Všechno je to pak popsané v dokumentaci té knihovny nette.ajax.js - https://componette.com/…tte.ajax.js/
P.S.: Není to jediná knihovna pro AJAX v Nette, na výběr máš hned z několika viz. úvodní poznámka na https://doc.nette.org/cs/2.4/ajax
Teď co se týče toho chování při odeslání formuláře. Nejdříve trocha teorie. Předpokládám, že při použití výše zmíněné knihovny jsi se vydal cestou server renderingu (snippetů v Nette). V podstatě ta JS knihovna zajistí, že se ten formulář na server dostane místo běžného odeslání právě pomocí AJAX a následně také, že to co jí server odpoví, vloží někam do stránky. To ale znamená, že za veškeré vykreslování, včetně např. výpisu těch chyb, jsi od teď zodpovědný Ty v PHP na straně serveru!
Tady je trochu potřeba změnit přístup, protože když např. nastane chyba v tom formuláři, musíš explicitně říct, co a kam se má vykreslit/překreslit. A to mě přivádí zpátky k těm snippetům. Pokud jsi s tím ještě moc nepracoval, doporučuji nejdříve nastudovat dokumentaci. Jestliže jsi s tím obeznámen, tak už se jenom zeptám, jak vypadá Tvůj PHP kód akce při úspěšném odeslání formuláře pomocí AJAX a jak vypadá Tvůj kód při chybném odeslání formuláře pomocí AJAX?
Pokud je tam někde chyba, tak bez kódu to vypátráme jenom těžko.
Ahoj,
řešení tohoto by nemělo být složité - všimni si metody
Nette.showFormErrors():
https://github.com/…etteForms.js#L285
tu si můžeš přepsat podle sebe a napojit si vlastní vypisování chyb.
Zobrazeno 4 zpráv z 4.