在symfony项目中使用ajax来删除项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在symfony项目中使用ajax来删除项目相关的知识,希望对你有一定的参考价值。

你好我正在寻找一个脚本,可以让我使用ajax删除symfony项目中的项目,我没有找到任何解决方案,我试图通过id删除项目(我给了一个静态ID),然后得到没有刷新页面的结果是我的控制器

$em = $this->getDoctrine()->getManager();
$evenement = $em->getRepository("TunisiaMallBundle:Evenement")->find(39);
$em->remove($evenement);
$em->flush();
$evenements = $em->getRepository("TunisiaMallBundle:Evenement")->findAll();
$response = new Response();
$response->headers->set('Content-Type', 'application/json');
$response->setContent(json_encode($evenements));
return $response;

我不知道我应该归还什么。 image

答案

在你的树枝上放这样的东西:

<button class="deleteBtn" id="{{ item.id }}">Remove</button>

这是使用JQuery的ajax:

$(document).ready(function(){

$('.deleteBtn').click(function (e) {
    e.preventDefault();

    itemId = $(this).attr('id');

    $.ajax({

        url: frm.attr('action'),
        data: {'entityId':itemId},
        method: 'post',
        success: function (data, reponse) {

         if(reponse == 'good' ){
            //appear pop to say success blabla
         }
        },
        error: function () {
            //appear pop to say error blabla
        },
    });

});

和控制器:

public function ajaxDeleteItemAction(Request $request)
{

    if($request->isXmlHttpRequest()){
    $id = $request->get('entityId');
    $em = $this->getDoctrine()->getManager();
    $evenement = $em->getRepository("TunisiaMallBundle:Evenement")-
    >find($id);

   $em->remove($evenement);
   $em->flush();


    return new JsonResponse('good');
  }
}

以上是关于在symfony项目中使用ajax来删除项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java Spring Boot MVC 中使用 Ajax 删除多个项目

Symfony 3 无法使用 ajax 登录

Symfony CSRF 和 Ajax

Symfony 5 执行 AJAX 查询时出现错误 500

使用带有 DELETE 的 Ajax 请求删除项目,使用 JQuery

symfony 5 从 url 中删除 public