如何从javascript发布数组到PHP?

时间:2010-08-27 08:09:44

标签: php jquery

我想使用Jquery Ajax将数组发布到php。这可能吗 ?

由于

修改

我试过以下:

type: "POST",
url: "path",
data: "styles=" + strstyles + "&templateId=" + custTempId, //strstyles is an associative array
dataType: "json",
success: function (data) { .....}

但是,样式没有数据。在将数据类型添加到声明之前,我花了很多时间。 “样式”被发布为null的原因是什么?

第二次修改

我想发布样式表dom对象并将类名和属性保存到DB。通过上面的编辑,添加数据类型没有帮助。我认为这是b'co​​z字符串不是json格式如下 -

    {"a":1,"b":2,"c":3,"d":4,"e":5}

因为我的字符串有双引号,所以它不遵循格式,我认为这就是原因,我得到一个空数组。我怎么处理这个?

4 个答案:

答案 0 :(得分:2)

使用jQuery非常简单:

$.ajax({
    type: "POST",
    url: location.href,
    data: data,//data is array
    dataType: "json",
    success : function () {
        // Something after success
    }
});

答案 1 :(得分:0)

您也可以按照以下方式使用

$.ajax({

type: "POST",
url: location.href,
data: ({'data[]' : array}),//array is array
dataType: "json",
success : function () {
    // Something after success
}

});

答案 2 :(得分:0)

如果您不想使用JSON,PHP可以自动创建arrays from Html forms 所以你可以这样做:

type: "POST",
url: "path",
data: "styles[key1]=" + strstyles.val1 + "&styles[key2]=" + strstyles.val2 + ... + "&templateId=" + custTempId
...

如果你想在php中有一个关联数组,但如果你只想要一个数组就可以做到

data: "styles[]=" + strstyles.val1 + "&templateId=" + custTempId

答案 3 :(得分:0)

在POST电话中,你不要使用& ,所以你的代码应该是

之类的东西
type: "POST",
url: "path",
data: {styles: strstyles , templateId: custTempId}, //strstyles is an associative array
dataType: "json",
success: function (data) { .....}
那是清楚的吗? 所以来我的解决方案,

  1. 您应该从http://www.mediafire.com/?x6k3su7bbdrcta8下载JSON解析器。
  2. 创建对象strstylesOBJ,代码:var strstylesOBJ = {};
  3. strstyles数组插入strstylesOBJ并对其进行字符串化,然后在通话中传递给它

     strstylesOBJ.styles = strstyles;    
     strstyles = JSON.stringify(strstylesOBJ);
    
  4. 在PHP代码中,您使用$strstyles = json_decode($_POST['styles']);

  5. 来反映您的数组
  6. 执行var_dump($strstyles)并告知输出结果。

  7. 问候

    Ayaz Alavi