我正在尝试使用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
有什么想法吗?
谢谢!
答案 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']);