欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 如何接收前端传来的json数据

程序员文章站 2022-06-05 12:15:22
...
PHP JSON 前端 前端用JQ 生成一个有字段名和值格式的键值对 的JSON 格式的字串 转码后 提交给后台的PHP 处理
代码如下
	json_data+="\"emp_id\":\""+emp_id+"\",\"action_type\":\""+action_type+"\"})"	//	$("#emp_no_id").val(json_data);		var json_data1=eval(json_data);	//	var json_data1=json_data;//	$.each(json_data1,function(item,value){//	 alert(item+value);//	});	$.ajax({            type: "post",//使用post方法访问后台            dataType: "text",//返回json格式的数据	    url: "updata_emp.php", //要访问的后台地址	    data:json_data1,	    ontentType:'utf8',	    async:false,            success: function(msg){//msg为返回的数据,在这里做数据绑定		    var arr=msg;		    alert(msg);	    }       });


后台使用PHP 接受
require '.\require\db_set.php';if (!empty($GLOBALS['HTTP_RAW_POST_DATA'])){    $command =  isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : file_get_contents("php://input");    $j =json_decode( $command,true);//true,转化成数组}echo $j ;

现在的情况是 接收到的内容 是一个字串, 无法用json_decode 转成数组



应该如何处理

回复讨论(解决方案)

你没有注意到你的弹框中就是一个 url 参数串吗?
既然 ajax 有 type: "post"
那么你就用 $_POST 就是了

你的json_data可以写成:json_data="emp_id="+emp_id+"&action_type="+action_type;这样的形式,然后在后端用$_POST['emp_id']这样的方法来获取传递的值

你当 jq 是弱智啊


你的json_data可以写成:json_data="emp_id="+emp_id+"&action_type="+action_type;这样的形式,然后在后端用$_POST['emp_id']这样的方法来获取传递的值

你没有注意到你的弹框中就是一个 url 参数串吗?
既然 ajax 有 type: "post"
那么你就用 $_POST 就是了

我不明白为啥 接收到是这样的数据, 我想接收到JSON 数据, 然后转成数组, 用数组遍历的方式生成 SQL 语句,字段太多, 不想一行行的写了

问题解决了 用参数传递的方法就可以了 我有点钻牛角尖了 分数散啦...