Bootstrap modal a ajax zpracování
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- TomasHuttner
- Člen | 66
Ahoj, mám modal okno ve kterým chci upravovat položky v menu, vše mám funkční i za ajaxované. Ale po přidání položky do databáze se mi modalové okno zavře a já si nevím rady jak docílit aby zůstalo otevřené. Nevíte někdo jak na to? Budu rád za každou pomoc.
Sablona:
{snippet menu}
<div id="menuModal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Editace položek v menu</h4>
</div>
<div class="modal-body">
<div n:foreach="$flashes as $flash" class="alert alert-{$flash->type}">
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
{$flash->message}
</div>
<form n:name="addItemMenu" class="ajax">
<div class="row">
<div class="col-md-5">
<input n:name="itemMenu" placeholder="Název položky" class="form-control">
</div>
<input n:name="send" class="btn btn-primary">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
{/snippet}
zpracování formuláře v presenteru:
public function processAddItemMenu(Form $form) {
try {
$values = $form->getValues();
$itemMenu = $values->itemMenu;
$this->menuModel->addItemMenu($itemMenu);
$this->flashMessage('Položka byla přídána!', 'success');
if ($this->isAjax()) {
$this->invalidateControl('menu');
}
} catch (Exception $e) {
$e->flashMessage('Přidání položky se nezdařilo zkuste to pozdeji!');
}
}
edit..
Jestě sem zapoměl na javascript:
$("form.ajax").live("click", function(event) {
event.preventDefault();
$.get(this.href);
});
Editoval TomasHuttner (30. 12. 2014 0:10)