ajax传整个数组到后台:
先用JSON.stringify,再在后台用json_decode来接收
js:
$.ajax({
type:'post',
url:'',
data:{ s_data:JSON.stringify(arr)}
});
PHP:
$s_data = input('post.s_data');//tp5写法
$the_data = json_decode($s_data,true);//true不能够少,有true才能解析成数组
PHP 和 js 通信用 echo
所以,ajax和PHP通信注意的点:
要指定接收的数据类型!
如果是在js端即ajax指定,即要增加dataType参数,值一般是'json':
$.ajax({
type:'',
url:'',
data:'',
dataType:'json',
success:function(){
}
});
如果在js端,ajax没有dataType这个参数,那么就要在PHP端指定返回的数据类型为json:
header('Content-Type:application/json');//这个类型声明非常关键
echo json_encode();
如果是tp5,可以用return json();就行,json()这个函数是tp5封装的助手函数。
(虽然前面说PHP和js通信用echo,但是经过测试,tp5直接用return json()也可以,返回一个json对象)