Předání errorů z vlastního pravidla do netteForms.js → Nette.showFormErrors
- S_I_M_O_N
- Člen | 23
Ahoj, snažím se vytvořit si vlastní pravidlo pro formulář. Jedná se o validaci proti databázi, jestli uživatel existuje. To mi funguje, ale chtěl bych tam udělat takovou dodělávku. Když používám vestavěná validační pravidla, tak se error message nasměruje právě do netteForms.js do funkce showFormErrors. Jak pošlu errory z vlastního validačního pravidla právě do této funkce?
Takhle nějak vypadá moje validace:
<?php
$form->addText('username', 'Username:')
->addRule(function ($control) {
$username = $control->value;
$row = $this->database->table('user')->select('username')->where('username',$username)->fetch();
return $row;
}, 'Uživatel neexistuje');
?>
Předem děkuji za pomoc.
- S_I_M_O_N
- Člen | 23
CZechBoY napsal(a):
Jestli jsem to dobře pochopil, tak ta funkce v dokumentaci je určená k validaci formuláře v JavaScriptu. To já ale nechci. Já chci pouze předat tu zprávu ‚Uživatel neexistuje‘ přesně jako ty vestavěné validační podmínky v PHP. Jak to udělám?
Jinými slovy, když udělám:
<?php
$form->addText('email', 'Email:')->addRule(UI\Form::EMAIL, 'Neni e-mail');
?>
Tak hlaska ‚Neni e-mail‘ (v případě, že uživatel nezadá validní e-mail) bude vypsána funkcí showFormErrors.
- S_I_M_O_N
- Člen | 23
premek_k napsal(a):
Nejde S_I_M_O_Novi spíš o toto: https://doc.nette.org/cs/forms#…
?
Ne. Validaci už mám naprogramovanou. Jde mi o to, že mám vlastní proceduru, jak zobrazovat error hlášky uživateli. To dělám na jednom místě, a tím je showFormErrors v souboru netteForms.js. Vestavěné validační funkce posílají error hlášky do této funkce. Já se ptám, jak to tam dostat z vlastního validačního pravidla, nebo zdali je to vůbec možné, ideálně jestli to není součástí frameworku.
- S_I_M_O_N
- Člen | 23
CZechBoY napsal(a):
To bys musel udělat tu validační funkci v js jak jsem poslal. Nebo vypnout validaci v js a vypisovat hlášky jen přes php no.
A jak se můžu připojit z JS do databáze? A i kdybych tu funkci udělal v JS, tak jak ty hlášky teda dám do té funkce showFormErrors?