gpt4 book ai didi

javascript - Symfony2 将ajax请求数据传递给表单渲染 Controller

转载 作者:行者123 更新时间:2023-11-28 07:34:06 24 4
gpt4 key购买 nike

我的 Symfony 表单有问题,我想根据预先查看的记录来预填充该表单。目的是创建一种更改记录数据的方法。我通过 JavaScript 导航到表单页面,并将 ajax 请求发送到呈现表单的同一 Controller 。

这是用于查看记录的页面的一部分:

    <input type="button" id="changeRecord" value="change"/>

record id: <div id="recordID"> {{ record_id }} </div>

我通过 javascript/jQuery 访问记录 ID,如下所示:

    var CssSelectors = new Array(
"recordID"
);

function getCurrentRecordID() {
return parseInt($.trim($("#" + CssSelectors[0]).text()));
};

JavaScript 中的按钮代码如下:

    $('#changeRecord').click(function () {
window.location.replace(Routing.generate(recordChangeRoute));

$.ajax({
url: Routing.generate(recordChangeAjaxRoute),
type: "POST",
data: {'recordID': getCurrentRecordID()}
});
// both Routes point to the same controller
// problem located here ???

Symfony Controller 操作如下:

public function changePlasmidRecordAction(Request $request) {
$em = $this->getDoctrine()->getManager();
$recordHandle = $em->getRepository('DataBundle:RecordClass');

$AjaxRequest = Request::createFromGlobals();
$RecordID = $AjaxRequest->request->get('recordID');

$recordToUpdate = $recordHandle->findOneBy(array('id' => $RecordID));
$updateForm = $this->createForm(new RecordClassType(), $recordToUpdate);
$updateForm->handleRequest($request);

if ($updateForm->isValid()) {
$em->flush();
return this->redirect($this->generateUrl('route_showRecord'));

} else {
return $this->render('DataBundle:RecordClass:updateRecord.html. twig',
array(
'RecordID' => $RecordID,
'form' => $updateForm->createView()
));
}
}

我想要实现的是:

  • 查看记录
  • 转到预填表格
  • 进行更改并保存

查看记录、创建表单、将更改保存到数据库 - 所有这些工作。不起作用的是访问 Controller 内所需的 ID。我可以按照我在其他 Controller 操作中尝试的方式访问 ajax 请求数据,没有任何问题。“表格请求”如何干扰?或者是吗?我必须使用事件监听器吗?

非常感谢任何帮助,提前致谢!

最佳答案

我通过保留 ajax 内容并通过 GET 提交所需数据来修复此问题。就像这样:

    $('#changeRecord').click(function () {
window.location.replace(Routing.generate(recordChangeRoute, {'recordID': getCurrentRecordID()}));
});

感谢您的参与,祝一切顺利。

关于javascript - Symfony2 将ajax请求数据传递给表单渲染 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com