Jak vytvořit input typu file se jménem file[]

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

Zkoušel jsem hledat na foru, ale zatím jsem nic nenašel. Jak prosím vytvořit input typu file s názvem file[] Tedz polem…
Děkuji

22
Člen | 1478
+
0
-

a o co se snažíš nebo k čemu to potřebuješ?

zoool
Člen | 89
+
0
-

No potřebuji zasílat, více souboru najednou a nechci tam mít hodně inputu typu file, tak se snažím udělat ten multi…

h4kuna
Backer | 740
+
0
-

file[] nejde uělat.

  1. Připrav omezené množství a zobraz jeden a ostatní javascriptem skryj.
  2. Tady na nette jsou doplňky 1. tady a 2. tady

Já osobně dělám hodně s pluploadem, bez doplňků.

David Matějka
Moderator | 6445
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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.

Vskutku.

svezij
Člen | 69
+
0
-

jiri.pudil Super… prostě super :-). Děkuji.