Diskuze: Ajax Nette
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
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.