Vykreslení flash zprávy po zpracování
- fary
- Člen | 155
Nejsem si úplně jistý, jestli tomu dostatečně rozumím. Rád bych docílil toho, aby se mi po zpracování požadavku pomocí ajaxu zobrazila flash zpráva. Zde je můj kód:
V šabloně:
<div class="scroll">
{snippetArea productListing}
<div n:foreach="$flashes as $flash" class="flash {$flash->type}">
{$flash->message}
<span class="close">x</span>
</div>
<div id="sortable" class="navigation-container list">
<div n:foreach="$products as $product" id="items_{$product->id}" class="item">
<a n:href="edit, id => $product->id">
<h2>{$product->name}</h2>
</a>
<div class="right">
<a n:href="delete!, id => $product->id" class="delete delete-confirm" data-question="Are you sure?">Delete</a>
</div>
</div><!--item-->
</div><!--navigation-container-->
{/snippetArea}
</div><!--scroll-->
Pozn: použl jsem snippetArea, protože samotné makro snippet kolidovalo se styly. :-(
V presenteru:
public function handleSort()
{
$data = $this->getHttpRequest()->getPost();
try {
$this->productFacade->sort($data);
$this->flashMessage('OK.');
} catch (\PDOException $e) {
Debugger::barDump($e->getMessage());
Debugger::log($e->getMessage(), Debugger::ERROR);
$this->flashMessage('An error occurred.');
}
$this->redrawControl('productListing');
}
Metoda sort() volaná hned na začátku bloku try jen přeuloží záznamy v DB s novým pořadím.
Problém je, že se prostě nezobrazí ta flash zpráva. Když provedu refresh stránky, tak je vidět, že sortování funguje, ale nevím, jestli se mi stránka skutečně pomocí ajaxu překresluje.
- David Matějka
- Moderator | 6445
snippetArea neni urceno pro prekreslovani. Je to pomocne makro, pokud chces invalidovat napr. snippety v inkludovanych sablonach.
pouzij {snippet}
, respektive n:snippet
, aby ti to
nekolidovalo se styly, tedy
<div class="scroll" n:snippet="productListing">