使用Jquery以HTML格式传递数组

时间:2013-03-25 20:21:34

标签: jquery html arrays

我正在尝试使用Jquery将数组传递给HTML表单,如下所示:

$('form#'+ID1+' input#myArray').val(theArray);

然后我的表格如下

<input type="hidden" id="myArray" name="myArray"> 

然后在调用Ajax请求之前序列化:

var dataString=$('form#grid1').serialize();

但是在接收脚本上我得到了:

Uninitialized string offset: 1

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我对你在问题中所展示的内容的最佳猜测。

当您调用以下内容时,theArray表示的数组将转换为逗号分隔的字符串并放置在隐藏的输入元素中。即使theArray是嵌套数组,也是如此。

$('form#'+ID1+' input#myArray').val(theArray);

但是在服务器上,您试图将发布的“myArray”值视为数组,因此会出现以下错误:

Uninitialized string offset: 1

问题是“myArray”不是数组,而是逗号分隔的字符串。

我建议将theArray值格式化为JSON,然后再将其设置为隐藏的输入元素,特别是如果它是嵌套数组。你可以这样做:

$('form#'+ID1+' input#myArray').val(JSON.stringify(theArray));

然后将其解析为服务器端的对象。我猜错你正在使用PHP,所以你会做这样的事情:

$myArray = json_decode($_POST['myArray']);