Javascript 如何将ajax调用中的数组传递给控制器并使用Symfony3返回它

Javascript 如何将ajax调用中的数组传递给控制器并使用Symfony3返回它,javascript,php,jquery,ajax,symfony,Javascript,Php,Jquery,Ajax,Symfony,您好,谢谢您的帮助,我有一个ajax调用,其中包含我想发送给控制器的数据,以便稍后删除指定的数据。目前,我想展示来自控制器的给定javascript。对不起,我的英语不是我的第一语言 它当前返回一个JsonResponse来测试是否调用了该方法,但是我想返回给定的javascript数组playlogs,我该如何做呢 Javascript: 使用“请求”参数包访问POST、PUT、修补和删除数据 $password = $request->request->get('passwo

您好,谢谢您的帮助,我有一个ajax调用,其中包含我想发送给控制器的数据,以便稍后删除指定的数据。目前,我想展示来自控制器的给定javascript。对不起,我的英语不是我的第一语言

它当前返回一个JsonResponse来测试是否调用了该方法,但是我想返回给定的javascript数组playlogs,我该如何做呢

Javascript:


使用“请求”参数包访问POST、PUT、修补和删除数据

  $password = $request->request->get('password');
和“查询”-用于获取数据

  $pageNumber = $request->query->get('page');

您可以根据数据,以json或任何其他格式发送播放日志。通过$request->getContent读取请求正文,并在php数组中对其进行解码

例:


我如何在php数组中解码它,比如:$array=JsonResponsejson\u decode$request->getContent;返回$array;我现在得到了这个错误:控制器必须返回一个响应Array0=>25,1=>11,2=>24,3=>14,4=>17,5=>26,并给出:$array=json\u decode$request->getContent;var_dump$数组;返回$array;控制器应返回响应。这对我不起作用,我得到一个错误400$数组=$request->request->get'playlogs';var_dump$数组;400错误与此无关。get将返回参数或NULL。$request->getContent得到了什么?我已经将类型设置为POST,现在它可以工作了,但是如何在php数组中使用这个新的响应呢?这给了我一个错误的请求:$array=newresponse$request->request->get'playlogs';var_dump$数组;哦,天哪。不要创建新的响应,使用Symfony发送到您的操作中的响应。
  $password = $request->request->get('password');
  $pageNumber = $request->query->get('page');
<script type="text/javascript">
   $(document).ready(function () {
       $('#deleteBtn').click(function () {
           var playlogs = [];
           $.each($("input[name='playlog']:checked"), function () {
               playlogs.push($(this).val());
           });

           var confirmText = "Are you sure you want to delete this?";

           if (confirm(confirmText)) {
               $.ajax({
                   type: "delete",
                   url: '{{ path('playlog_delete_bulk') }}',
                   data: JSON.stringify(playlogs),
                   success: function (data) {
                      alert("selected playlogs: " + data.join(", "));
                   }
               });
           }
           return false;
       });

   });
/**
 * @Route("/delete/bulk", name="playlog_delete_bulk")
 */
public function deleteBulkAction(Request $request)
{
    if ($request->isXMLHttpRequest()) {
        return new JsonResponse(json_decode($request->getContent()));
    }

    return new Response('This is not ajax!', 400);
}