我将我的数组存储在隐藏字段中
var myarray = [];
if ($(this).prop('checked')) {
myarray.push(val);
$('#myhidden').val(JSON.stringify(myarray));
}
如何检索该数组?因为我希望该数组使用jquery.ajax将其传递到其他页面
我试过这个
var retarray = $('#myhidden').val();
["110","118"]
当我使用jquery.ajax发送它时
$.ajax({
type: 'post',
dataType: 'json',
url: 'tootherpage.php',
data: 'param1=' + param1 + '¶m_array=' + retarray,
success: function(data) {
}
});

它给了我错误,因为它不是数组。
提前谢谢。
答案 0 :(得分:2)
您将数组转换为字符串:
$('#myhidden').val(JSON.stringify(myarray));
如果你需要它是一个数组,那么你需要从字符串
中解析这个数组var retarray = JSON.parse($('#myhidden').val());
例如:
var array = [1,2,3,4]; // create an array
var stringarray = JSON.stringify(array); // convert array to string
var array2 = JSON.parse(stringarray); // convert string to array
答案 1 :(得分:0)
试试这个
var retarray = encodeURIComponent($('#myhidden').val());
答案 2 :(得分:0)
你可以这样做:
C
" |"是一个在数组中不存在的符号,这很重要。
答案 3 :(得分:0)
您的ajax请求正在使用方法POST
,并且您指定的数据类型为json
,这意味着您的 http 请求正在发送 json 在体内。
因此,您可以将整个请求消息发送为 json ,如下所示:
// get json from input
var retarray = $('#myhidden').val();
// parse json into js
var arr = JSON.parse(retarray);
// create your request data
var data = { param1: param1, param_array: arr };
// stringify
var json = JSON.stringify(data);
$.ajax({
type: 'post',
dataType: 'json',
url: 'tootherpage.php',
data: json, // the json we created above
success: function(data) {
}
});
然后在您的php脚本中,您可以将 json 消息反序列化为 php 对象,如下所示:
$json = file_get_contents('php://input'); $obj = json_decode($json)