[2.0.14] AJAX a FlashMessage
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- RandoMMeR
- Člen | 4
Nazdar,
skusam rozchodit posielanie flash messages v handle metode, ale nejako to stale nechce ist.
odkaz:
<a class="ajax btn btn-success" n:href="addProductToOrder! $p->id, $o->id">
nette js:
jQuery.extend({
nette: {
updateSnippet: function (id, html) {
$("#" + id).html(html);
},
success: function (payload) {
// redirect
if (payload.redirect) {
window.location.href = payload.redirect;
return;
}
// snippets
if (payload.snippets) {
for (var i in payload.snippets) {
jQuery.nette.updateSnippet(i, payload.snippets[i]);
}
}
}
}
});
jQuery.ajaxSetup({
success: jQuery.nette.success,
dataType: "json"
});
$(function(){
$("a.ajax").on("click", function (event) {
event.preventDefault();
$.get(this.href);
});
});
handle metoda:
public function handleAddProductToOrder($productID, $orderID) {
$product = $this->productModel->getProductByID($productID);
$result = $this->orderModel->addItemToOrder($orderID, $productID, 1, $product->retail_price);
if($result) {
$this->flashMessage("Added", "success");
} else {
$this->flashMessage("Fail", "danger");
}
if($this->isAjax())
$this->invalidateControl();
else
$this->redirect('this');
}
flash snippet:
{snippet flashes}
{foreach $flashes as $flash}
<div class="alert alert-{$flash->type}">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4>
{!$flash->message}
</h4>
</div>
{/foreach}
{/snippet}
skusal som aj invalidovat priamo snippet flashes ale nepomohlo
ako response dostavam stale toto:
{"state":[]}
nasiel som v dokumentacii ze sa flash messages zobrazia az po redirecte. ale ja to chcem nie po redirecte, ale vynutit prekreslenie v handle metode
Vdaka
RR