jquery - 发布数组 jquery 序列化

标签 jquery arrays post serialization

我正在尝试将 javascript 数组发布到 php 页面。该数组必须是关联的。我的结构如下所示:

<input id="test" value="1" class="settings" />
<input id="test1" value="2" class="settings" />

当我创建数组时,它是:

var myArray = new Array();

$(".setttings").each(function(){
     myArray[$(this).attr("id")] = $(this).val();
});

现在,当我发布这些数据时,我只是在做:

$.ajax({
    type: "POST",
    url: 'post.php",
    data: "settings="+myArray,
});

问题是,在 Firebug 中,如果我查看帖子的设置,它是空的。我需要像这样传递数组,因为我要将每个设置放入 php 中并序列化它们并将它们插入到数据库中的字段中。这样我就可以将设置拉出来并反序列化以重新填充这些字段。我有什么想法可以做到这一点吗?

最佳答案

我建议进行两项更改。

首先,由于您想要在 PHP 中使用关联数组,因此您应该使用对象,而不是 Javascript 中的数组:

var myObject = new Object();

$(".setttings").each(function(){
    myObject[$(this).attr("id")] = $(this).val();
});

接下来,您想以稍微不同的方式将其传递到数据部分:

$.ajax({
    type: "POST",
    url: "post.php",
    data: {
        settings: $.param(myObject)
    }
});

重要的部分是 $.param,因为它将对象转换为一系列参数(适合 query_string)。

要使其正常工作,您需要在服务器上做的最后一件事是用 PHP 解析它:

parse_str($_POST['settings'], $settings);

现在您可以像在 JavaScript 中一样访问 $settings 变量中的所有内容。

$settings['id'] = "value";

关于jquery - 发布数组 jquery 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1761035/

相关文章:

javascript - 更改用于分隔具有相同名称标识符的表单输入字段的字符?

javascript - 如何检查字符串是否为 .inarray

php - 在 PHP 中访问关联数组时 undefined variable

python - 根据多个值过滤 numpy 结构化数组

php - 来自php的Ajax响应,在div内回显span?

php - 使用 PHP 的 cURL lib 中的 POST 不发送

每 2 个类的 Javascript 循环

jquery - 如何从单选按钮是和否添加或隐藏选择标签?

javascript - 动态加载 jQuery 并使用它

php - 在Google中找到 'template page',填写POST/GET