Javascript(AJAX)发送数组到PHP无法正常工作

时间:2014-03-05 11:27:34

标签: javascript php jquery ajax arrays

我正在尝试将数组从Javascript发送到PHP。

function wishlist_save(arr){
    $.ajax({
        type: "POST",
        url: "from.php?type=customers",
        data: {info: JSON.stringify(arr) },
        success: function(){

        }
    }); 
}   

数组以这种方式设置:

function getAll(){
    var info = [];
    var i = 0;
    $(".desc").each(function(){
        var value = $(this).text();
        var qtt = $(this).attr('alt');

        info[i] = [];
        info[i]['desc'] = value;
        info[i]['qtt'] = qtt;

        i++;
    });

    return info;
}

如果我在javascript中输出(使用console.log(getAll()))数组,我会在Chrome控制台中获得正确的值:

[Array[0], Array[0], Array[0]]
 ->0: Array[0]
      desc: 'John'
      alt: 'Good'
 ->1: Array[0]
      desc: 'Obama'
      alt: 'Great'

但在PHP(from.php?type=customers)中,我无法弄清楚如何获取这些值。

$arr = json_decode($_POST['info']);
ChromePhp::log($arr[0]['desc']); // returns null

我做错了什么?

解决即可。

问题出现在JSON.stringify(arr)上,这在某种程度上没有将数组正确发送给PHP。

所以,我需要的是调整检索数组的函数:

var info = [];
info.push({desc: value, qtt: qtt });

除此之外,AJAX现在只需要:

data: {info: arr },

和PHP:

0 个答案:

没有答案