manualne vykreslovanie formulara – chyba pri addRule

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Takeshi
Člen | 596
+
0
-

Ahojte,

ked urcitemu prvku priradim …

<?php
->addRule(Form::INTEGER,"Vlož číselnú hodnotu!")
?>

… a nasledne formular odoslem … sice mi to neprejde (pri vlozeni textu), ale chybova hlaska sa nevypise (flashMessage() alebo pomocou alert() spravy) … ako to mam riesit … dakujem

David Matějka
Moderator | 6445
+
0
-

pri manualnim vykreslovani musis manualne vykreslit i chyby
viz https://doc.nette.org/cs/forms#…

nebo error pro konkretni input

{$form['myInput']->error}
Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

pri manualnim vykreslovani musis manualne vykreslit i chyby
viz https://doc.nette.org/cs/forms#…

nebo error pro konkretni input

{$form['myInput']->error}

tak skusil som nasledovne …

<?php
    {form novaKniha}
        {$form['novaKniha']->error}
    {/form}
?>

tak mi napise chybu, ze neexistuje component s nazvoma ‚novaKniha‘ a pritom mi to vykresluje jednotlive prvky v pohode, pokial som tam nedal …

<?php
        {$form['novaKniha']->error}
?>

… tak neviem, v com je chyba

David Matějka
Moderator | 6445
+
0
-

pokud chces vykreslit vsechny chyby nad formularem, pouzij

<ul class="errors" n:if="$form->hasErrors()">
        <li n:foreach="$form->errors as $error">{$error}</li>
</ul>

pokud chces jen pro konkretni input, pouzij

{$form['myInput']->error}

myInput je nazev toho vstupniho pole, cos pridal na form, treba $form->addText('myInput'), ne nazev ty komponenty

Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

takze …

<?php
{$form['cena']->error}
?>

funguje celkom dobre … ale ten druhy sposob …

<?php
<ul class="errors" n:if="$form->hasErrors()">
        <li n:foreach="$form->errors as $error">{$error}</li>
</ul>
?>

nevykresli nic … to mam asi len ja take ‚stasite‘

David Matějka
Moderator | 6445
+
0
-

co mas za verzi nette? s tema errorama tam bylo nekolik zmen. v 2.0 byly v $form->errors pouze chyby primo na formulari (tedy pridany pres $form->addError()) a chyby jednotlivych inputu v tom nebyly..

Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

co mas za verzi nette? s tema errorama tam bylo nekolik zmen. v 2.0 byly v $form->errors pouze chyby primo na formulari (tedy pridany pres $form->addError()) a chyby jednotlivych inputu v tom nebyly..

tu najnovsiu

Takeshi
Člen | 596
+
0
-

Ako je to teda s tym vykreslovanim chybovych hlaseni? Stiahol som si verziu cca v novembri-decembri … teda ked tam boli zmeny …

<?php
<ul class="errors" n:if="$form->hasErrors()">
    <li n:foreach="$form->errors as $error">{$error}</li>
</ul>
?>

… toto mi nic nevykresluje … preco?
… objavi sa mi (v ramci setRequired) pod polickom oznamenie „Vyplnte toto pole“ so zltym vykricnikom
⇒ to vsak funguje aj bez hore uvedeneho kodu … a ja potrebujem vykreslovanie aj pre napr addRule(Form::INTEGER) … atd.. vysielam SOS … lebo som to uz riesil ale nevyriesil … a som so silami na dne :-(

Takeshi
Člen | 596
+
0
-

Ako som sa dozvedel, tak to bude asi takto

… v 2.1 uz nepatria chyby k celemu formularu, ale k jednotlivym inputom. tzn. chyby sa vykresluju ku kazdemu inputu zvlast. Teda ako bolo spomenute vyssie …

<?php
{$form['myInput']->error}
?>

Editoval Takeshi (25. 3. 2014 20:26)

Šaman
Člen | 2666
+
0
-

A co zkusit kód z aktuálního Sandboxu?

<ul class=error n:if="$form->ownErrors">
   <li n:foreach="$form->ownErrors as $error">{$error}</li>
</ul>

Editoval Šaman (26. 3. 2014 2:50)