我需要在AJAX调用中处理5个数组,但只有两个正在解码。我已经试着调试了一天半,但我不知道为什么。我使用以下代码进行AJAX调用
function postrates(){
if(changearray.length>0){
$.ajax({
type:'POST',
async:false,
url:"xml_postdailyrate.php",
data:{
'changearray':JSON.stringify(changearray),
'minarray ':JSON.stringify(minarray),
'lockarray ':JSON.stringify(lockarray),
'costarray ':JSON.stringify(costarray),
'availarray':JSON.stringify(availarray)
},
success:function(JSON){
changearray=[];
availarray =[];
costarray =[];
minarray =[];
lockarray =[];
},
error:function(){
alert('Failed');
}
})
}
}
它通过了数组。好吧,下面的服务器端代码已经被删除,使我的测试更容易。
<?php
header("Content-Type: application/json");
$changearray="Empty";
$availarray="Empty";
$minarray="Empty";
$lockarray="Empty";
$costarray="Empty";
if(isset($_POST['changearray'])){
$changearray=json_decode($_POST['changearray']);
}
if(isset($_POST['availarray'])){
$availarray=json_decode($_POST['availarray']);
}
if(isset($_POST['minarray'])){
$minarray=json_decode($_POST['minarray']);
}
if(isset($_POST['lockarray'])){
$lockarray=json_decode($lock);
}
if(isset($_POST['costarray'])){
$costarray=json_decode($_POST['lockarray']);
}
$arr['changearray'] =$changearray;
$arr['availarray'] =$availarray;
$arr['minarray'] =$minarray;
$arr['lockarray'] =$lockarray;
$arr['costarray'] =$costarray;
$arr = json_encode($arr);
echo("$arr");
Firebug"post"选项卡将5个阵列正确显示为
changearray [63291,63368,63292]
minarray ["7","9","8"]
lockarray ["X","X","X"]
costarray ["4","6","5"]
availarray ["1","3","222"]
Firebug"JSON"选项卡显示
changearray [63291, 63368, 63292]
0 63291
1 63368
2 63292
availarray ["1", "3", "222"]
0 "1"
1 "3"
2 "222"
minarray "Empty"
lockarray "Empty"
costarray "Empty"
我不知道为什么它不解码minaray,lockarray,costray。
谢谢你花时间阅读我的问题。
您使用的不是密钥"minarray"
,而是密钥"minarray "
(注意空格)。其他两个数组也是如此。