当我通过 ajax 发送到 POST 中的服务器数组时遇到问题,JQuery 版本为 1.10.2
。我的数组是对象数组(这样的对象基本上是一个关联数组)。
函数JSON.stringify(word_mean_arr);
返回[[]]
- 所以它无法工作,如果我简单地写:
$.post( "./ajax2/myscript.php", {block_id: bl_id, wm_arr: word_mean_arr})
我无法获取 $POST['wm_arr'] 的值,就像它不存在一样。
我的数组示例如下:
[[key]=>1,[value]=>"this_is_"],[[key]=>2,[value]=>"this_is_str2"]
所以我的目标是:
[ [key]=>1, [value]=>"this_is_str"]
这就是我形成数组的方式
var word_mean_arr = new Array();
for (var i = 0; i <= this.n_of_wd_mean; i++)
{
var temp_arr = new Array();
temp_arr['key'] = $("#tswes_2_"+i).val();
temp_arr['value'] = $("#tswes_2_"+i).val();
word_mean_arr.push(temp_arr);
}
console.log("Array to server length>" + word_mean_arr.length);
var jsonString = JSON.stringify(word_mean_arr);
我应该如何传输数据以及出现什么问题?
更新1: JSON.stringify(temp_arr)
是[]
,但是当console.log(word_mean_arr)
时code> 我看到了数组的整个结构。
更新2:用temp_arr[0]
替换temp_arr['key']
,解决了我的问题。但仍然好奇如何发送 key->val。
最佳答案
您的 temp_arr 变量被初始化为数组,但随后您可以像使用对象一样使用它,访问它没有的键。
这将解决问题:
var temp_arr = {
key: $("#tswes_2_"+i).val(),
value: $("#tswes_2_"+i).val()
};
而不是这个:
var temp_arr = new Array();
temp_arr['key'] = $("#tswes_2_"+i).val();
temp_arr['value'] = $("#tswes_2_"+i).val();
关于javascript - 通过 $.post 问题发送数组到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445725/