我尝试通过ajax将id作为数组传递,但是当我在服务器端使用PHP转储get变量时,我没有得到任何值,数组为空。使用firebug进行调试我发现数组已通过但[]
已编码ids%5B%5D
我的javascript
function update_category(selected) {
$.ajax({
url: '/admin/?controller=products&action=update_category',
type: 'GET',
dataType: "application/JSON",
data: {
ids: cat_ids,
s_category: selected
},
success: function(data) {
addAlert('alert-'+data, data);
},
error: function(data) {
addAlert('alert-'+data.responseText, data.responseText);
}
});
}
var_dump $_GET['ids']
null转储漏洞$_GET
我得到[" ids%5B%5D"]
我不明白为什么数组在linux环境中的提交时被编码
在ubuntu下12.10 PHP 5.3.10 Firebug XHR-> PARAMS
action update_category
controller products
ids%5B%5D 1403172219
ids%5B%5D 1530542001
s_category 1
如何正确传递数组?
答案 0 :(得分:0)
由于您已在此处将URL传递给GET值:
/管理/的控制器=产品和安培;行动= update_category 强>
然后data
中的信息可能永远不会过去。
请改为尝试:
function update_category(selected) {
$.ajax({
url: '/admin/',
type: 'GET',
dataType: "application/JSON",
data: {
ids: cat_ids,
s_category: selected,
controller: 'products',
action: 'update_category'
},
success: function(data) {
addAlert('alert-'+data, data);
},
error: function(data) {
addAlert('alert-'+data.responseText, data.responseText);
}
});
}