[英]How to pass a variable from javascript to symfony2 controller
我有一个模态表,表中有一些数据,每行旁边有一个单选按钮。 每次单击该单选按钮时,单击按钮后,相应的数据将存储在数组中。 现在,我在将变量从javascript传递到控制器(这是数组的第6个索引)时遇到问题。
根据我的研究,大多数解决方案都使用ajax。 我已经在控制器中尝试了所有可能的代码,但似乎什么也没收到。 我在ajax调用中发送的数据未到达控制器。 这是我的树枝文件:
<button type="button" id="selectrow" class="btn btn-primary pull-right btn-spacing">Select</button>
$(document).ready(function () {
$('#selectrow').click(function () {
var data = selected[6];
jQuery.ajax({
url: "project/edit/",
type: "GET",
data: { "data": data },
success: function (data) {
alert("OK");
},
error: function (data) {
alert("fail");
}
});
});
所选变量是我将所选数据分别存储在文件中某个位置的位置。 下面是我的控制器,我试图显示以下内容,但输出均为空。
public function editAction(Request $request) {
if ($request->isXmlHttpRequest()) {
dump($request->getContent());
}
dump($request->request->get('data'));
dump($request->query->get('data'));
}
我真的很困惑,因为单击按钮后它会提示“确定”,但是数据没有发送到控制器。 有人可以帮我弄这个吗? 非常感谢,谢谢。
这是我得到的输出:
这里的问题是您刷新了页面,这意味着您根本没有任何data
调用了控制器。 在此之前发生的事情是jQuery调用了您的editAction
方法并等待一个永远不会出现的响应,因为您在Controller中什么也没有返回,这是奇怪的,因为您会得到一条错误消息,说明Controller should return a Response
。
因此,您必须采取什么方法来确保Controller从jQuery
接收data
:
dump
并die
:
public function editAction(Request $request) { if ($request->isXmlHttpRequest()) { dump($request->getContent()); } dump($request->request->get('data')); dump($request->query->get('data')); die(); // terminate the current script }
返回响应中的data
,并在jQuery
success
:
在控制器中:
return new JsonResponse($request->request->get('data'));
在jQuery
的成功中:
$(document).ready(function () { $('#selectrow').click(function () { var dataSend = selected[6]; jQuery.ajax({ url: "project/edit/", type: "GET", data: { "data": dataSend }, success: function (data) { console.log(data...); if(data == dataSend) console.log("equivalent"); }, error: function (data) { alert("fail"); } }); });
我不知道data
变量的类型。 如果它只是一个字符串或数字,则可以只提供console.log(data)
,它应该在浏览器控制台中输出该值。
如果可行,请发表评论...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.