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

how to retrieve array in hidden field

本文关键字:字段 数组 隐藏 何检索 检索      更新时间:2023-09-26

我将数组存储在隐藏字段

var myarray = [];
if ($(this).prop('checked')) {
    myarray.push(val);
    $('#myhidden').val(JSON.stringify(myarray));
}

如何检索数组?因为我希望数组通过jquery。ajax

传递到其他页面

I tried this

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) {
  }
});

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

提前感谢。

你在这里将数组转换为字符串:

$('#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

试试这个

 var retarray = encodeURIComponent($('#myhidden').val());

您的ajax请求是使用POST方法,并且您已经指定了json的数据类型,这意味着您的http请求在body中发送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)

你可以这样做:

$('#myhidden').val(myarray.split("|")); //set "0|1".split("|") - creates array like [0,1] 
myarray = $('#myhidden').val().join("|"); //get [0,1].join("|") - creates string like "0|1"

"|"是数组中不存在的符号,它很重要。