FORM addError v $form->onSuccess[] zobrazit prez AJAX
- vosy
- Člen | 532
ahoj mam formular a chtel bych aby mi vracel chybovae hlasky prez ajax
v JS mam:
$("form.ajax").on('click', "#frmnewForm-ulozit", function (payload)
{
// cl(payload);
$(this).ajaxSubmit(payload);
return false;
});
kdyz mam ve formulari
$form->addText('nazev', 'Název:')
->setRequired('Zadejte název značky.');
a znacku nezadam tak se spravne zobrazi ALERT okno s uvedenou hlaskou.
problem mam kdyz znacku vyplnim a chci zkontrolovat jestli znacka jiz neni v dtb.
public function defaultFormUlozit(MyForm $form)
{
$vals = $form->values;
$presenter = $form->getPresenter();
if(.....)
{
$form->addError('Znacka jiz existuje.');
tak se mi tato hlaska jiz nevrati ajaxem do ALERTmessage
jak??????
- Robyer
- Člen | 74
IMHO to voláš v metodě onSuccess, ale měl bys to volat v nějaké dřívejší (onSubmit nebo jak se jmenuje). (ale nevím jestli to něčemu reálně pomůže)
Btw myslím, že všichni lidé, co tady radí, sledují všechny sekce a nechodí jen do těch „svých“ :)
Editoval Robyer (25. 12. 2013 11:27)
- Robyer
- Člen | 74
Aha, už chápu…
Ten alert od setRequired() se nezobrazuje kvůli ajaxu, ale ta kontrola je
přímo nadefinovaná v JavaScriptu. Ta tvoje kontrola probíhá na straně
serveru, takže si to musíš „zajaxovat“ sám. Buď si přidat do JS
vlastní kontrolu (kde by se při odeslání formuláře odeslal ajax požadavek
a zkontroloval, jestli je to platné, a případně zobrazil alert), nebo si
musíš „zajaxovat“ celý formulář… (tzn. asi obalit do snippetu,
odesílat ho ajaxově a při zpracování dat ve formuláři ten celý snippet
invalidovat).
Editoval Robyer (25. 12. 2013 14:59)
- vosy
- Člen | 532
Ahoj, diky za komunikaci.
Asi si nerozumime, setRequest uvedeny na policku ve formulari se mi prez ajax
vrati, kdyz je chyba. Problem mam ze kdyz je podminka vyplneni policka uspesna ,
tak kontroluju zda nazev jiz existuje v dtb. A kdyz nazev existuje tak
potrebuju vratit prez ajax hlasku. Myslel jsem ze se to vyresim tim ze pridam na
formular vlastni chybu addError ve fci onValidate.
Potreboval bys neco vice poslat aby presne pochopil muj problem??
Dix
- Robyer
- Člen | 74
Už jsem se v tom trochu ztratil. Chtěl jsem říct, že tu chybovou hlášku od setRequired() podle mě nezískáváš ajaxem, ale ověřuje se to celé na straně klienta (bez komunikace se serverem). Takže zpracování tvé chybové hlášky ze serveru si možná budeš muset udělat sám (nevím jestli ten skript, který používáš pro ajaxové odeslání formuláře, umí zpracovávat ty chyby). Díval ses, co se ti ajaxem vrátí ze serveru za data?