json数组到php
我有json格式的数组,但我想用php打印它。我在帖子中写道:json数组到php,php,json,Php,Json,我有json格式的数组,但我想用php打印它。我在帖子中写道: [{"cartData":{"id":"dragged_567737","left":"255px","top":"71px"}},{"cartData":{"id":"dragged_757836","left":"43px","top":"73px"}}] 但是,当我在php文件中使用print\r($\u POST)时,它会将空数组打印出来。 这是我的js代码: jQuery('#save_project_data').cl
[{"cartData":{"id":"dragged_567737","left":"255px","top":"71px"}},{"cartData":{"id":"dragged_757836","left":"43px","top":"73px"}}]
但是,当我在php文件中使用print\r($\u POST)时,它会将空数组打印出来。
这是我的js代码:
jQuery('#save_project_data').click( function() {
var array=[];
var numItems = $('.icart').length;
$(".icart").each(function(index) {
var cart_id = $(this).attr("id");
var cart_left = $(this).css("left");
var cart_top = $(this).css("top");
var cartData = {
"id" : cart_id,
"left" : cart_left,
"top" : cart_top
};
queryStr = { "cartData" : cartData };
array.push(queryStr);
});
var postData = JSON.stringify(array);
$.ajax({
url : "modules/cart_projects/saveData.php",
type : "POST",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data : postData,//{ 'data': '{"name":"chris"}' }
traditional: true,
success: function(){
alert("OK");
}
});
return false;
});
根据文件:
要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串它被附加到GET请求的url中。请参阅processData选项以防止自动处理。对象必须是键/值对。如果value是数组,jQuery将基于传统设置的值(如下所述)使用相同的键序列化多个值
为了安全起见,您最好使用该方法
最后,我建议给数据
属性一个对象
。这样,您就可以为post数据设置标识符
Javascript
{
url:'modules/cart_projects/saveData.php',
数据:{
mydata:postData
}
}
PHP
$\u POST['mydata'];
如果需要解码JSON:
json_decode($_POST['mydata']);
根据文件:
要发送到服务器的数据。如果尚未转换为字符串,则会将其转换为查询字符串它被附加到GET请求的url中。请参阅processData选项以防止自动处理。对象必须是键/值对。如果value是数组,jQuery将基于传统设置的值(如下所述)使用相同的键序列化多个值
为了安全起见,您最好使用该方法
最后,我建议给数据
属性一个对象
。这样,您就可以为post数据设置标识符
Javascript
{
url:'modules/cart_projects/saveData.php',
数据:{
mydata:postData
}
}
PHP
$\u POST['mydata'];
如果需要解码JSON:
json_decode($_POST['mydata']);
尝试使用json_decode()函数。尝试使用json_decode()函数。PHP本机支持使用 PHP
$\u POST
数组是从键值对解释的,因此您需要像下面这样更改ajax调用,因为您的代码发送的是没有键的POST数据
data : { myJson : postData },//{ 'data': '{"name":"chris"}' }
如果您像上面那样更改数据结构,还需要删除应用程序/json;字符集=utf-8
内容类型
从:
获取JSON编码的字符串并将其转换为PHP变量
PHP本机支持使用解码JSON PHP
$\u POST
数组是从键值对解释的,因此您需要像下面这样更改ajax调用,因为您的代码发送的是没有键的POST数据
data : { myJson : postData },//{ 'data': '{"name":"chris"}' }
如果您像上面那样更改数据结构,还需要删除应用程序/json;字符集=utf-8
内容类型
从:
获取JSON编码的字符串并将其转换为PHP变量
如果将原始JSON字符串发送到PHP,则不会填充$\u POST(因为它需要POST请求提交的标准URL编码字符串进行解码)。您可以通过将postData用作对象:{'json':json}来解决此问题,以便在$_POST['json']中获取值,或者通过读取原始响应:
$json_string = file_get_contents('php://input');
$struct = json_decode($json_string, true);
如果将原始JSON字符串发送到PHP,则不会填充$\u POST(因为它需要POST请求提交的标准URL编码字符串进行解码)。您可以通过将postData用作对象:{'json':json}来解决此问题,以便在$_POST['json']中获取值,或者通过读取原始响应:
$json_string = file_get_contents('php://input');
$struct = json_decode($json_string, true);
为什么不按原样传递数据呢?你为什么要把它字符串化?你有哪个版本的php?为什么不按原样传递数据呢?你为什么要把它字符串化?你有哪个版本的php?它会有什么变化?不是答案。“你需要”-实际上没有“需要”,这只是可用的选项之一。“为了安全”-为了远离什么?停止写一些随意的短语)它会改变什么?不是答案。“你需要”-实际上没有“需要”,这只是可用的选项之一。“为了安全”-为了远离什么?别再胡乱写了)@Evaldas Struckus:“这不是工作”不是问题explanation@EvaldasStruckus取出
应用程序/json;charset=utf-8
content-type并在javascript中设置post键(如答案所示)。现在在post中,我得到了这个myJson=%5B%7B%22cartData%22%3A%7B%22id%22%3A%22draugd_790583%22%2C%22left%22%3A%22171px%22%2C%22top%22%3A%22103px%22%7D%5d,看起来正确。PHP将自动解码url编码,然后使用json_解码,如图所示对url编码进行解码JSON@EvaldasStruckus:“这不是工作”不是问题explanation@EvaldasStruckus取出应用程序/json;charset=utf-8
content-type并在javascript中设置post键(如答案所示)。现在在post中,我得到了这个myJson=%5B%7B%22cartData%22%3A%7B%22id%22%3A%22draugd_790583%22%2C%22left%22%3A%22171px%22%2C%22top%22%3A%22103px%22%7D%5d,看起来正确。PHP将自动解码url编码,然后使用json_decode对json进行解码,如图所示