我有一个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 ,所以显然我的解码操作出错了。我已经阅读了文档,但无法弄清楚我的错误是什么。
您还需要更多信息吗?会很乐意帮忙!