Jak vytvořit input typu file se jménem file[]
- David Matějka
- Moderator | 6445
nebo me napada vytvorit form container a pri vykreslovani formu (ne pri zpracovani) dat na 0 index jeden fileupload, dalsi potom pridavat pomoci js jako upload[] a pri zpracovani formu u toho containeru dat podminku, ze pokud byl form odeslany (treba to vytahnout z httprequestu), tak nevytvorit jen s indexem 0 ale presne tolik, kolik jich bylo odeslano.. (snad je to pochopitelny :) )
ale samozrejme je lepsi nejaky mfu, doporucuju http://blueimp.github.com/…File-Upload/
- zoool
- Člen | 89
Ahoj o tomto vím http://blueimp.github.com/…File-Upload/ ale tam je právě také použito to file[], tak jestli víte jak to nassadit byl bych rád…
Editoval zoool (10. 9. 2012 20:02)
- svezij
- Člen | 69
Ahoj, také bych ocenil nějaké řešení elementů formuláře s atributem
name="whatever[]"
. Mnohokrát jsem již potřeboval javascriptem
generovat elementy formuláře, a předem jsem nevěděl přesný počet.
Varianta vytvoření omezeného počtu a skrytí javascriptem nebyla vhodná,
protože jich mohlo být 5, ale taky 50 (jednalo se např. o rezervační
systém zájezdů, evidence hostů na hotelech atd., v jedné rezervaci pak
mohli být dva lidé, ale také půlka nějaké firmy). Stejný případ je
multiple file input, se kterým přišlo HTML5. Navíc, proč používat flash,
nebo nějakou takovou „špatnost“, když to konsorcium konečně hodlá dát
do standardů :-). Teď jsem na to narazil právě v souvislosti multiple file
inputu a opět se může stát, že uživatel nahraje 2 obrázky, ale také
jich může nahrát 100, takže jediné vhodné řešení je
<input type="file" name="images[]" multiple />
. Naštěstí
tu nepotřebuji nic validovat, takže to řeším naprosto příšerným
způsobem, protože nevím, jak to udělat jinak – mám:
$form->addUpload('images')
->setAttribute('multiple');
a v šabloně latte pak:
{capture $imagesInput}{input images}{/capture}
{!$imagesInput|replace:'name="images"':'name="images[]"'}
a zpracovávám to přes $this->request->files
„ručně“. Kdybych s tím ale potřeboval něco „víc“, tak bych se
musel zařídit jinak. Navíc je to opravdu špatné řešení. A možná by to
nebyl špatný námět pro update knihovny
Nette\Application\UI\Form
. Jak mám tento problém
řešit? Díky.
- jiri.pudil
- Nette Blogger | 1034
Mnohokrát jsem již potřeboval javascriptem generovat elementy formuláře, a předem jsem nevěděl přesný počet.
Můžeš použít hosiplanův Replicator.
A možná by to nebyl špatný námět pro update knihovny Nette\Application\UI\Form.