js如何传递一个多维数组到php
在前端页面中,经常用到ajax向后台请求数据,一般而言,请求方式为get或者post。
get方式请求是将参数拼接成url的形式传递给后台。例如:
<script>
let url="http://xxx.php?a=1&b=2&c=3";
$.getJSON(url,function(res){
console,log(res);
....
})
//或者
$.getJSON(url,{data:data},function(res){
console,log(res);
....
})
</script>
post方式请求示例:
<script>
let url="http://xxx.php";
$.post(url,{data:data},function(res){
console.log(res);
...
})
</script>
在实现一些特定业务需求的时候,往往会碰到一些奇怪的情况,如如何以get方式传递一个多维数组到php。
get方式是以拼接成url的方式传递到后端,那么我们也可以将这个多维数据拼接到url上传递过去,首先我们应该将多维数组转为json字符串,再转为url形式,最后拼接到url上。如:
<script>
let data = encodeURI (JSON.stringify( data ) );
let url=' http://xxxx.php?&data=' + data;
$.getJSON(url,function(){
console.log(res);
...
})
</script>
//php接收
<?php
$data = json_decode( urldecode($_GET['data']) );
print_r($data);
?>
这样多维数组便可以以get方式传递了。