将javascript数组传递给php以打印值不起作用

时间:2013-04-22 14:10:58

标签: php javascript ajax

我想将一个javascript数组传递给php来打印值,但它无法正常工作。我做错了什么?

的javascript

   $('#Enviar0').click(function() {
        var buttons0 = [];
        for(var i=0;i<4;i++){
            buttons0[i]+= $('butEnv'+i).val();
            alert($('butEnv'+i).val());
        }
        var array=buttons0.toJSONString();
        $.ajax({ 
               type:"POST",
               url:"pintaParte.php",
               data: {encapsulado:array},
               success: function(data) {
                        $("#pinta").html(data);
               }
        });         
    });

PHP

$buttons0=parseJSON($_POST['encapsulado']);
foreach ($buttons0 as $value) {
    echo $value.'<br>';
}

2 个答案:

答案 0 :(得分:4)

在客户端使用JSON.stringify()

$.ajax({ 
               type:"POST",
               url:"pintaParte.php",
               data: JSON.stringify({encapsulado:array}),
               success: function(data) {
                        $("#pinta").html(data);
               }
        }); 

答案 1 :(得分:0)

你是否检查你的数组在php端是否正常(在ajax调用之后)?

如果你无法在php端获得你的数组,可能在你的javascript中尝试简单地使用...

data : "encapsulado=" + array

在你的php代码中,尝试将数组的所有值放在一个字符串中,只做一个echo然后返回。

$str = "";
foreach ($buttons0 as $value) {
    $str = $str.$value.'<br>';
}
echo $str;
return;

尝试使用类似firebug或Chrome开发工具的工具查看http请求中的参数和响应,并且能够本地化错误(在客户端或服务器端)。

希望这有帮助!