AJAX – prubeh zpracovani dat z formulare
- lvq
- Člen | 47
zdravim,
mam formular s doplnkem multipleuplouad, na server nahraju nekolik fotek, to
probehne v poradku.
A po odeslani se zacnou fotky zpracovavat a ja chci dat uzivateli vedet, co se
zrovna deje.
V sablone jsem si vytvoril snippet:
{snippet prubeh}
{if (isset($aktualne_zpracovavana_fotka))}
{$aktualne_zpracovavana_fotka}
{/if}
{/snippet}
A funkce po odeslani formulare (zpracovavajici fotky) vypada zhruba takhle:
public function odeslani_fotek($formular)
{
...
if ($formular['poslat']->isSubmittedBy())
{
$hodnoty = $formular->values;
....
foreach ($hodnoty['fotky'] AS $fotka)
{
$this->template->aktualne_zpracovavana_fotka = $fotka->name;
$this->invalidateControl();
......
.....
}
...
Podle mych predstav by to melo pri zpracovani fotek vzdy vypsat, nazev fotky,
ktera se zpracovava, to se ale vubec nedeje. Zpracuji se vsechny fotky zaraz. Na
foru se me na toto tema nepodarilo nic najit.
Nevite jak by se tohoto chovani dalo docilit?
Predem diky za rady.
Pouzivam nette 2.0, verze stazena v unoru a PHP 5.2
- arron
- Člen | 464
Je potreba si uvedomit, ze komunikace po HTTP je v podstate jednosmerna, cili prohlizec posle dotaz a dostane se mu odpovedi. Takze pokud delas neco na serveru a prohlizec se Te na nic nepta, tak do nej zadna data nedostanes. Jestli jsem to spravne okoukal, tak se to dela tak, ze pomoci javascriptu se musis periodicky ptat serveru jaky je stav (treba jednou za 5 sekund, cas je potreba spravne vyladit) a vymyslet nejaky mechanismus, aby Ti server vracel nejaka rozumna data, jak daleko dana operace je. To se pak da pomici JS zobrazit.