在json_decode之后,Symfony ajax对象为null

时间:2017-10-02 13:11:44

标签: json ajax symfony controller decode

我有一个ajax功能:

<script type="text/javascript">
$(document).ready(function() {
  $('#{{ form.vars.name }}_documentlist').change(function() {
    $.ajax({
      type: "POST",
      data: $("form").serialize(),
    });
  });
});
</script>

documentlist是一个多选下拉列表,所选的“条目”被发送到我的ActivationController:

/**
  * @Route("/document/bulkdeactivate", name="documentBundle_document_bulkDeactivate")
  * @Template()
  */
  public function bulkDeactivateAction(Request $request) {
      $em = $this->getDoctrine()->getManager();
      $selected_documents[] = $request->getContent();
      dump($selected_documents);
      foreach($selected_documents as $document){
      $params = json_decode($document, true);
      dump($params);
      }
      $form = $this->createForm(DocumentDeactivationType::class);
      $form->handleRequest($request);

      if ($form->isSubmitted()) {
        foreach($params as $document) {
  $document->setActive(false);
            $em->persist($document);
            $em->flush();
            $this->addFlash(
            'success',
            'The document has been deactivated!'
            );
            return $this->redirectToRoute('documentBundle_document_list');
            }
          }
          return $this->render('DocumentBundle:Panels:ActivationPanel.html.twig', array(
            'form' => $form->createView(),
          ));
}

但在我的控制器中,我做错了什么。我想将选定的条目保存到我的数据库中,以便解码它们到对象。 以下是我对我的代码的看法: $ selected_documents是一个数组,因为我可以从我的下拉列表中选择几个文档。我有解码的foreach循环,因为我无法解码数组,我没有弄清楚它如何更好地工作。 第一个转储($ selected_Documents)返回例如

array:1 [▼
  0 => "search=&document_deactivation%5Bdocumentlist%5D%5B%5D=41"
]

第二个转储($ params)然后返回 null ,所以显然我的解码操作出错了。我已经阅读了文档,但无法弄清楚我的错误是什么。

您还需要更多信息吗?会很乐意帮忙!

0 个答案:

没有答案
相关问题