我有一个模式,表格中有一些数据,每行旁边有一个单选按钮。每次单击该单选按钮,相应的数据将在单击按钮后存储在数组中。现在,我将一个变量从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'));
}
我真的很困惑,因为点击按钮后它会发出'OK'警告,但数据没有被发送到控制器。有人可以帮我弄这个吗?非常感谢,谢谢。
这是我得到的输出:
答案 0 :(得分:0)
这里的问题是你刷新页面意味着你在没有任何data
的情况下调用控制器。之前发生的事情是 jQuery 调用你的editAction
方法并等待一个永远不会出现的响应,因为你在Controller中没有返回任何特殊的东西,因为你应该得到一个错误,说明一个{ {1}}。
那么您必须采取哪些方法来确保Controller从Controller should return a Response
收到data
:
jQuery
和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
s 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
,它应该在浏览器控制台中输出值。
如果有效,请发表评论......