Formulář – po nahrání obrázku obrázek zobrazovat

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

Ahoj,

mám formulář s prvkem:

$form->addUpload('image', 'Obrázek');

Cestu obrázku si uložím do DB. Nyní, když už mám obrázek nahraný, bych chtěl namísto uploadu zobrazovat náhled obrázku.

Máte prosím nějaké nápady, jak toho dosáhnout?

Díky.

thm
Člen | 147
+
0
-

Jestli to dobře chápu tak chceš například na stránce zobrazit formulář, a pokud ho použiju, tak místo něho ten uploadovaný obrázek. V tom případě bych v presenteru a jeho render metodě (popřípadě v komponentě a její render metodě) měl asi něco takového:

$this->template->image = $this->imageManager->getImage($id); //returns ActiveRow || NULL when not found

a v šabloně:

{if $image}
	<img src="{$image->url}">
{else}
	{control uploadForm}
{/if}

Editoval thm (5. 9. 2014 10:40)

davez
Člen | 60
+
0
-

Myslel jsem to takto, příklad: Chci vytvořit položku zboží, u které jsou informace – název, váha, obrázek. Vytvořím pomocí formuláře – vyplním údaje, nahraji obrázek. Nyní chci toto zboží editovat – chci vidět text input pro název, váhu; ale buď vedle uploadu, nebo místo uploadu chci vidět náhled obrázku.

thm
Člen | 147
+
0
-

Tak buď obrázek zobraz mimo formulář:

<img src="{$image->url}" n:if="$image">
{control uploadForm}

nebo použij ruční vykreslování formuláře:

{form uploadForm}
	{label name /}: {input name}
	<img src="{$image->url}" n:if="$image">
	{label upload /}: {input upload}
	...
{/form}

Editoval thm (8. 9. 2014 9:34)

davez
Člen | 60
+
0
-

Díky, takto jsem to vyřešil :)