如何使用Post Ajax传递多维JS数组

时间:2012-11-26 09:53:52

标签: php javascript ajax post multidimensional-array

我有一个JS多维数组和ajax的问题​​,我尝试了很多东西,并决定将数组连接到那时,在php上进行爆炸并获取数组。

我决定看看如果发送“park”数组就像那样:

    $.post( VIEW+THEME+"ajax/insertPark.php", {
            p:Base64.encode(park),
    }

我没有在PHP上获得数组。

加入并不好,我不知道是不是因为我的阵列看起来不像:[水果,食物,肉] ...

在console.log测试中,park.join使该公园成为字符串'〜',没有其他数据。

var park = [];
    $.each(languajes, function(i, itemData) {
        park[i] = [];
        park[i]['idLanguaje']   = itemData['idLanguaje'];
        park[i]['name'] = $('#name-'+itemData['idLanguaje']).val();
    });

    console.log(park);
    console.log(park.join('~'));

    $.post( VIEW+THEME+"ajax/insertPark.php", {
            p:Base64.encode(park.join('~')),
    }, function(data) {
        //window.location.href='/';
    }, "json" );

知道我怎么能这样做吗?数组上的元素取决于数据库中的语言数量(即:不同语言中的公园名称),可以是ES,EN或ES,EN,RU,FR ......并且函数必须适应这一点。

感谢您的建议!

2 个答案:

答案 0 :(得分:3)

从你的数组中创建json并将其字符串化 - Serializing to JSON in jQuery

在PHP中使用json_decode函数

答案 1 :(得分:1)

您可以尝试将数组编码为JSON吗?像这样的东西?

JS:

var parkString = JSON.stringify(park);
$.post( VIEW+THEME+"ajax/insertPark.php", {
        p: parkString,
}

PHP:

$park = json_decode($_POST['p'], true);