javascript - 通过 $.post 问题发送数组到 PHP

标签 javascript jquery ajax arrays

当我通过 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/

相关文章:

javascript - JQuery $.getJSON 具有用户名和密码基本身份验证?

jquery - 单击时替换 CSS 在快速单击时无法正常工作

php - 在 jQuery 弹出窗口中打开 PHP 文件,而不使用 iframe

javascript - 使用 Bootstrap 删除所有屏幕尺寸大于 480 像素的 div

c# - 来自 Web 表单的 Web-API 调用 - AJax。不存在 'Access-Control-Allow-Origin' header

javascript - 数组有 5 个对象,每个对象都有另外 5 个对象的数组属性。我正在尝试创建一个函数来查找具有 ID 的对象

javascript - 如何访问数组中的数组元素(JavaScript)?

javascript - ionic 2 声音在加载音频时停止背景音乐

jquery - 有什么方法可以检查 Firebug 中关闭选项卡控制台错误吗?

javascript - JQuery 自动完成显示名称并使用 php 和 mysql 维护 id