CRUD - 如果页面没有刷新,添加和删除一个接一个地不起作用
Posted
技术标签:
【中文标题】CRUD - 如果页面没有刷新,添加和删除一个接一个地不起作用【英文标题】:CRUD - Add and Delete not working one after other if page is not refreshed 【发布时间】:2021-02-27 15:08:24 【问题描述】:我有一个烦人的问题我无法解决。
我正在我的 Symfony 项目中生成 CRUD 操作。我为 Add 方法发出了 AJAX 请求,它应该可以正常工作。
之后我为 Delete 方法创建了 AJAX 请求。
当我添加我的新实体对象时,表格会在不刷新页面的情况下重新加载。
问题是,如果我在添加后单击删除,则会引发找不到 ID 的错误。
/**
* @Route("/user/id", name="user_delete", options="expose"=true)
*/
public function delete($id)
$em = $this->getDoctrine()->getManager();
$$user = $em->getRepository(User::class)
->findOneby(['id' => $id]);
if (!$user)
throw $this->createNotFoundException('No User found for id '.$id);
$em->remove($user);
$em->flush();
return $this->json(["message" => "SUCCESS"]);
因此,例如,我添加了具有 ID = 2 的实体。 DIV 被重新加载。现在我点击删除 2 并显示:
未找到 ID 1
的用户
问题是它总是在页面刷新后填充我删除的最后一个 ID。
现在,如果我刷新页面然后尝试删除,它将捕获 ID = 2 并删除它。现在,我添加 ID = 3 而不刷新页面,它会抛出:
未找到 ID 2
的用户
我认为这可能与我的添加表单有关:
添加表格:
$('#form-submit').on('click', function (e)
e.preventDefault();
$.ajax(
type: "POST",
url: '/subscription/add',
data: $('form#subscription-form').serialize(),
processData: false,
success: function ()
$("#user-table").load(location.href + " #user-table");
$('#addUser').modal('hide');
displayNotif('success', 'check', 'User created successfully');
,
error: function (xhr, status, error)
var ErrorMessage = JSON.parse(xhr.responseText);
$('#general-error').html(ErrorMessage.message);
);
);
有人可以帮忙吗?
$(document).ready(function ()
$('.user_delete').on('click', function ()
let removeUrl = $(this).attr('data-remove-url');
$('.remove-user').attr('data-remove-url', removeUrl);
);
$(".remove-user").click(function (e)
let removeUrl = $(this).attr('data-remove-url');
e.preventDefault();
$.ajax(
url: removeUrl,
type: 'DELETE',
success: function()
$("#user-table").load(location.href + " #user-table");
$('#confirmDelete').modal('hide');
displayNotif("danger", "warning", "User deleted successfully");
);
);
);
我正在添加所有内容,以便您了解我在做什么:
<a href data-toggle="modal" data-target="#confirmDelete" data-remove-url=" path('user_delete', 'id':user.id) " class="btn user_delete">x</a>
【问题讨论】:
查看***.com/questions/34003738/… 对不起,对我的 coce 没有帮助。 @hous 【参考方案1】:选项 1: 删除按钮的单击事件无法正常工作。
尝试替换
$(".remove-user").click
有
$(".remove-user").on(“click”
选项 2:
data-remove-url
此属性不会相应更新。检查您的 DOM 以进行验证
【讨论】:
以上是关于CRUD - 如果页面没有刷新,添加和删除一个接一个地不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在刷新页面时没有显示来自 apollo 服务器的数据?