Form addUpload – zachovat hodnotu inputu

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

Ahoj, chtěl bych se Vás zeptat, jestli se dá nějak vyřešit zachování hodnoty pro $form->addUpload

Příklad:

  • mít možnost nahrát 1-n produktů
  • nahrávat 1-n souborů pro produkt

Použil jsem Kdyby/Replicator pro produkty a $form->addUpload multiple pro soubory.
$products = $form->addDynamic(‚products‘, function (Container $product) use ($removeEvent) {
$product->addMultiUpload(‚files‘, ‚Files‘);
}

Problém(tj. zmizí vyplněné files) ale nastává když:

  • odešlu formulář a je v něm logická chyba (livevalidace pro povinné položky je ok, tímto myslím validaci na straně serveru – např. není možné mít produkt v kategorii abc a současně zapnutou možnost xyz)
  • kliknutí na odstranění produktu v kdyby/replicator nebo přidání nového prvku (nemám řešeno ajaxově)

Chci se tedy zeptat, co používáte vy? Asi by byla nejlepší možnost všechno navěsit na ajax. Uživatelům s javascriptem by to nejspíš(?) nevymazávalo soubory a uživatelům bez js dát hlášku do <noscript> tagu

Defaultní hodnotu změnit nelze
http://stackoverflow.com/…ut-type-file#…

Tomáš Jacík
Člen | 147
+
0
-

Pokud se nemýlím, tak to vyresetování file polí je vlastnost prohlížeče. Zkus použít nette.ajax a odesílat form ajaxem, snad pomůže.

Phalanx
Člen | 310
+
0
-

Nakonec jsem udělal přes dropzone – nahraji přes ajax soubory přímo na server, uložím do db a zpětně si natáhnu už jen miniatury.