ajax中枚举数组转换成JSON字符串,服务端如何接收?

<script>

$("#tb1 tr").click(function(){
var tr=$(this);
alert(tr.text());//这个输出选中行的数据
var tds=tr.find("td");
var tdarray=new Array();//申明一个数组用来存放所点击行的所有数据,存储成一个数组.
tds.each(function(){
var td=$(this);
tdarray.push(td.text());//把数据逐个写入数组
})
var myjson=JSON.stringify(tdarray);//将数组转换成JSON字符,传给后台处理页面.
$.ajax({
url:"showrow.php",
type:"POST",
data:myjson,
success:function(res){
$("showdata").html(res);
}

})
})
</script>
上面是jquery从一个表中获取行数据并通过JSON.stringify转换成JSON字符串传递给后台,现在一个问题,转换成是枚举数组如["a1","a2","a3"],这种数组后端要怎么接收,尝试过$a=$_POST["0"],$b=$_POST["1"],$c=$_POST["3"],下标获取,但是提示是错误的?不知道要怎么获取这种无KEY值的JSON数据?
最新回答
微光迷失尘夏

2024-04-24 18:52:17

服务端可以这样处理:
$data=file_get_contents('php://input');
$arr=json_decode($data,true);
然后$arr[0]就是前端数组中的"a1",$arr[1]就是"a2",依此类推
-----------------------------
后期补充:
我这边测试是完全没问题的,附我的测试代码:
html端:
<div id="showdata"></div>
<script>
var myjson=JSON.stringify(["a1","a2","a3"]);
$.ajax({
url:"test.php", //这是我自己的测试文件名
type:"POST",
data:myjson,
success:function(res){
$("#showdata").html(res);
}
});
</script>
php端(test.php):
<?php
$data=file_get_contents('php://input');
$arr=json_decode($data,true);
echo $arr[0];
?>
追问
这个我之前尝试过,就是PHP的file_get_contents('php://input')无法获取数据?测试过,返回的值是NULL ?