Nextras\Forms – užitečné formulářové komponenty
- hrach
- Člen | 1840
Nextras\Forms
je knihovna obsahuji uzitecne a casto pouzivane formularove prvky.
Komponenta | JS frontend | Popis |
---|---|---|
OptionList | ANO | radio list, vyberu pouze jednu hodnotu ze seznamu |
MultiOptionList | ANO | checkbox list, vyberu 0-n hodnot ze seznamu; validace popdoruje pomínky výběru m hodnot. |
DatePicker | pouze ukázka (jQuery UI) | HTML5 input, pracující s DateTime, nutny fallback pro JS komponenty |
DateTimePicker | pouze ukázka |
composer require nextras/forms
- Git: https://github.com/nextras/forms
- Jak použít: https://github.com/nextras/forms#…
- Demo: http://nextras.cz/forms
Editoval hrach (1. 3. 2014 19:54)
- barbucha
- Člen | 11
Zdravim,
snazim se pouzit MultiOptionsList
a potrebuji mit promenou $level persistentni
pokud zatrhnu ve formulari napriklad WARN a ERROR vygeneruji se mi
v odpovedi (html) dva hidden inputy
<input type=„hidden“ name=„level[0]“ value=„WARN“ /><input
type=„hidden“ name=„level[1]“ value=„ERROR“ />
pokud pouziji formular znovu dochazi k chybam, hidden input a checkbox se vzajemne ovlivni a ve vysledna promena $level obsahuje nesmysly
Nemuzete me nejak nakopnout …
Editoval barbucha (30. 1. 2013 12:04)
- Caine
- Člen | 216
Tak pokud potrebujes mit $level persistentni, tak v obsluzny onSuccess
metode asi udelas neco jako $this->level = $values['level']
(pokud jsi v presenteru/control prvku). A pri tvorbe formalure
$form->addMultiOptionList('level', 'Level:', array('DEBUG' => 'DEBUG', ...)->setDefault($this->level);
- barbucha
- Člen | 11
add @hrach
Persistentni formularovy prvek.
Pokud do formulare dam napriklad input typu text s nazvem test
<input type=„text“ name=„test“ value="">
a $test nastavim jako persistent, tak se mi nikdy zadny hidden input se jmenem test nevytvori
add @caine
krome formulare, pouzivam obsah promene do odkazu a hlavne jednou za cas delam
ajaxem automaticky reload stranky, kde potrebuju mit informace z promene $level
a nechtel jsem to delat nejakym zpusobem rucne. Stranka obsahuje formular a pod
nim tabulku s vysledky ovlivnenymi zatrzenymi checkboxy, tato tabulka se
pravidelne obnovuje.
- boob
- Člen | 21
Zdar, snazim sa rozbehat tieto komponenty, skopiroval som kod z ukazky
ale najprv dostanem chybu
Use of undefined constant items - assumed 'items'
pravdepodobne tam ma byt teda
$form['list2']->items
ale po opraveni zase dostanem
Component with name 'list2:0' does not exist.
je este nieco potrebne niekde pridat?
dakujem
Editoval boob (24. 4. 2013 13:09)
- akadlec
- Člen | 1326
@duskohu: pokud je to v tom dateinput elementu stejně jako v těch jiných co jsem viděl tak mají formát data natvrdo jako konstantu ve třídě. Řešil jsem to tak že jsem to předělal na proměnnou a přidal setter kterým jsem to mohl nastavovat, ale nakonec jsem to zahodil a udělal vlastní formextension přímo pro bootstrap který mě dělá input prepend či append a je tam i clear button.
EDIT:
aha asi sem tě přesně nepochopil, chceš změnit použitý formát přímo
už v tom co dělá ten plugin? Konkrétně ten co odkazuješ používám taky
a v tom obalovacím DIVu kde mám zadefinované options mám taky data atribut
pro určení formátu.
Editoval akadlec (9. 7. 2013 8:53)
- hrach
- Člen | 1840
nextras/forms jsou opěz kompatibilní s masterem. Nově přibyla jednoduchá možnost tvorby svých input maker, které input etc. upraví do podoby, které potřebuje váš kodér. Jako příklad je možné uvést též nové Bootstrap 3 makro. Tyto makra je možné dále rozšířovat, dle pořeby daného webu.
- minarth
- Člen | 1
Zdravím,
chtěl bych použít Nextras\forms ve formuláři, který dělám. Plánuji mít
celý form v jednom source-file a vykreslovat ho na více různých webech..
šel jsem na to, jako je v návodu nette.org.. Ale nevím, jak do toho
natlačit Nextras\forms. V návodu je použití bootstrap a config.neon.. nic
z toho ale nemám.
Musím si vybudovat standartní „Nette set-up“ anebo to lze nějak obejít?
Díky
- hrach
- Člen | 1840
duskohu: co sem na to ted koukal, tak to neni a hned tak asi nebude. i kdyz jsem provedl drobnou upravu, tak to nejak nefunguje :D (videl bych zapeklitost spis v nette a jeho logice addCondition)
minarth: vubec ti nerozumim :-) Pro pouziti nextras v podstate nepotrebujes zadne bootstrap. staci zaregistrovat extension metodu, nebo si napsat vlastni metodu, ktery vytvari dany formularovy prvek ve formu…
- raketoplan2005
- Člen | 147
Nette 2.0
Nextras/Forms 1.0.0
Tento zápis u mě vyžaduje zaškrtnutí všech checkboxů namísto kteréhokoli, je to možné, prosím? :-)
Druhá věc je jak nastavím vlastní klíče jednotlivým checkboxům ta kabych pak mohl nastavit setDefaults, prosím? Checkboxy se mi indexují vždy od nuly.
Předávám jako třetí parametr:
Děkuji
Editoval raketoplan2005 (5. 8. 2013 20:25)
- Jakub Kontra
- Člen | 30
Je možné aby mi toto nefungovalo?
EDIT:
Shazuje mi to apache, pokud ale smažu validace je to funkční
Editoval JimmyBlack (22. 8. 2013 0:24)
- Jiří Nápravník
- Člen | 710
Zdravím,
chtěl bych používat Nextras\Forms pro renderováníé Bootstrap 3. Je nějak
možné při manuálním vykreslování nějak vykreslit celý pár? Tedy label
i input? Kdyby\BootstrapRenderer má na to sympatické makro {pair}, které to
obstarává, je něco takového možné u Nextras, případně jak na to?
Protože často potřebuji vypsat oba najednou a když udělám {label }{input},
tak pak musím logicky ten obalovaci div class=„form-group“ dělat ručně,
což je moc pracný…
- hrach
- Člen | 1840
Dival jses vubec na kod? :) Zkus jak v normalnim rendereru, pac to od nej dedi. https://github.com/…Renderer.php#…
- Jiří Nápravník
- Člen | 710
Dival jsem se na kod, ale prilis moudry jsem z toho nebyl. Samozrejme jsem si vsiml metody renderPair. ale mejak jsem moc nepochopil jak to použít dospěl jsem k něemu takovému:
jenže skončím s chybou na
s tím že není definován $this->form
Já to nakonec vyřešil tím, že jsem podědil ten Nextras renderer a s vlastním formulářovým makrem, mj nastavuji ten $this->form, tak to pak funguje. Ale třeba dělám něco špatně.
- Jiří Nápravník
- Člen | 710
- co si pamatuju, tak se renderer pouziva nejak takto:
tj právě přesně to co mi klasicky nefungovalo a kvůli kterému jsem rozšiřoval ten tvůj Renderer. Protože pokud koukám správně do kódu, tak DefaultFormRenderer v metodě render jako parametr mode nezpracovává pair… Metoda renderPair je volána jen z renderControls, která je volána z renderBody…
urcite je blbost kombinovat renderer a makra
nevím jestli se chápeme, já si jen udělal vlastní makro {pair}, který jen volá ten můj urpavený render:
- Azathoth
- Člen | 495
To dělám. Mám tam
<script src=„{$basePath}/js/jquery.min.js“></script>
<script
src=„{$basePath}/js/bootstrap-datetimepicker.js“></script>
<script
src=„{$basePath}/js/bootstrap-datetimepicker.cs.js“></script>
<script
src=„{$basePath}/js/nextras.datetimepicker.init.js“></script>
<link href=„{$basePath}/css/datetimepicker.css“ type=„text/css“
rel=„stylesheet“>
<link rel=„stylesheet“ href=„{$basePath}/css/bootstrap.css“>
a nic. Pořád je to anglicky.
- BigCharlie
- Člen | 283
Narazil jsem na drobný, ale protivný problém. Pokud použiju
CheckboxList
ve spojení s Bs3Input makry, dojde k chybě
v šabloně:
Problém je v tom, že Checkboxlist::getControl
vrací
string.
Obejít se to dá tím, že místo CheckboxListu využiju MultiOptionList z Nextras. Existuje řešení, při kterém mohu využít nettí CheckboxList?
- David Grudl
- Nette Core | 8250
Tip pro vývojáře doplňků: pokud se chcete vyhnout zbytečnému načítání třídy, místo
použijte