我想将一个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>';
}
答案 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请求中的参数和响应,并且能够本地化错误(在客户端或服务器端)。
希望这有帮助!