0

我正在尝试使用 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

有任何想法吗?

谢谢!

4

1 回答 1

1

这是您在问题中显示的最佳猜测。

当您调用以下内容时,由 表示的数组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']);
于 2013-03-25T20:41:38.837 回答