我有一个调用控制器中的动作的Ajax调用。
Ajax调用看起来像这样
$(document).on('click', '.editQuestionButton', function() {
var question_id = $(this).data('question');
console.log(question_id);
$.ajax({
type: "POST",
url: "/dashboard/form/AjaxEditQuestionForm/" + question_id + "",
success: function(data) {
$('#form-modal').html(data);
}
});
});
$(document).on('click', '.modal .fn-submit', function() {
$(this).closest('.modal').find('form').submit();
});
这就是行动。
/**
* @Route("/AjaxEditQuestionForm/{question}")
* @Template
* @ParamConverter("question", class="AppBundle:Question")
*/
public function ajaxEditQuestionFormAction(Request $request, $question)
{
$edit_question_form = $this->createForm(new AddQuestionType(), $question);
$edit_question_form->handleRequest($request);
if ($edit_question_form->isValid()) {
$em->flush();
return $this->redirectToRoute('app_form_create');
}
else{
die();
}
return array(
'question' => $question,
'editAjaxQuestionForm' => $edit_question_form->createView(),
);
}
问题是该操作永远不会返回表单,而是直接检查表单是否有效。
我认为这与$request
有关,但我不知道如何改变它。
操作应首先从Ajax调用中获取数据,返回表单,如果表单已提交,请检查表单是否有效并刷新Question实体。
关于我应该怎么做的任何想法?