【发布时间】:2016-07-16 21:19:15
【问题描述】:
在视图中,我有一个包含数据库数据的表。当我单击编辑时,会出现一个包含编辑表单的模式。当我进行更改并单击保存按钮时,更新将保存在数据库中,并且一切正常。 现在我想知道如何在不刷新页面的情况下在视图中显示更新完成。
{% for entity in entities %}
<td>{{ entity.id }}</td>
//....
<td>
<a href data-toggle="modal" data-target="#myModal-{{ entity.id }}"
class="btn btn-mint btn-xs btn-icon btn-circle icon-lg fa fa-pencil">
</a>
</td>
{% endfor %}
ajax 请求
$(document).on('click', ".btn-edit-ajax", function (e) {
e.preventDefault();
var $form = $(this).closest('form');
var action = $form.attr('action');
var data = $form.serialize();
var $btn = $('.btn-edit-ajax');
$btn.prop("disabled", true);
$.ajax({
type: 'post',
dataType: 'json',
data: data,
url: action,
success: function (data) {
if (data.result == 0) {
$('.div-errors').replaceWith($(data["view"]));
$btn.prop("disabled", false);
}
else {
$("#myModal").modal('hide');
$btn.prop("disabled", false);
}
},
error: function (XHR, status, error) {
$btn.prop("disabled", false);
hideLoading();
console.log(XHR);
console.log(status);
console.log(error);
alert(error);
}
});
});
动作
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
$response = new JsonResponse();
return $response;
}
【问题讨论】: