如何在隐藏字段中检索数组

时间:2015-07-29 07:33:38

标签: javascript jquery

我将我的数组存储在隐藏字段中

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 + '&param_array=' + retarray,
  success: function(data) {


  }

});




它给了我错误,因为它不是数组。

提前谢谢。

4 个答案:

答案 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)