微信小程序传数组给后台(thinkphp后台接受前端数组参数)

场景:需要前端传关联数组给后端
尝试:常规写法不好使
解决:前端json序列化 对象数组 为 字符串 str,然后将此字符串 str 作为参数的值传给后端(比如 schools: str ),后端将收到的参数 先进行htmlspecialchars_decode ,然后json反序列化为对象数组

微信小程序js代码:test.js

testArrPost: function()
{
	// 对象数组
	var schollArr = [
		{"name":  "清华大学",  "id": 1},
		{"name":  "北京大学",   "id": 2}
	];
	// json序列化
	var schoolStr = JSON.stringify(schollArr);
	var postData = {
		schools: schoolStr
	}
	wx.request({
         url: 'https://xx.com/test',
         data: postData,
         method: 'POST',
         header: { 'content-type': 'application/x-www-form-urlencoded' },
         success: function (res) {
         	console.log(res);
         }
     });
}

thinkphp后台接口代码:

public function test()
{
	 $inputSchools = I('schools');

     $c1 = htmlspecialchars_decode( $inputSchools ); // 反解析html特殊字符

     $schoolObj = json_decode( $c1 );//反序列化为对象数组

     if ( empty( $schoolObj ) ) die('输入数组错误');
     var_export( $schoolObj );
     echo 'success';
}
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值