我在jquery中创建了一个数据对象,并使用post方法将其传递给php
var PD = { currentPage : 1, rowCount : 10, search : 5 };
post method --> data = PD
在php页面中如果我获得超级全球$ _POST我有这个
var_dump($_POST) --> Array ( [data] => [object Object] )
在php中如何阅读$ _POST ['数据']值? 谢谢
编辑(完整代码)
var PD = { currentPage : 1, rowCount : 10, search : 5 };
PD = JSON.stringify(PD);
redirectPost('index.php', { data : PD });
var redirectPost = function(location, args) {
var form = '';
$.each(args, function(key, value) {
form += '<input type="hidden" name="'+key+'" value="'+value+'">';
});
$('<form action="'+location+'" method="POST">'+form+'</form>').appendTo('body').submit();
};
PHP
$data = json_decode($_POST['data']);
var_dump($data); <-- NULL
答案 0 :(得分:0)
看起来你正在寻找json_decode() - 函数。但是,这不会创建PHP对象,但会变成这样的数组:$data['currentPage']
。看看你是否获得了更多运气:
$data = json_decode($_POST['data']);
var_dump($data);
答案 1 :(得分:0)
看起来您的JavaScript对象已转换为字符串[object Object]
,您需要在发布之前JSON.stringify
JavaScript对象。
var PD = { currentPage : 1, rowCount : 10, search : 5 };
// ensure our data is serialised in a format we can read later with PHP.
PD = JSON.stringify(PD);
post method --> data = PD
收到你的$ _POST数据后,菲尔指出你应该能够json_decode
答案 2 :(得分:0)
首先,你的javascript永远不会工作。有一些javascript问题,比如在声明之前调用变量,值中的双引号会干扰json。字符串化
value="{"currentPage":1,"rowCount":10,"search":5}"
看起来并不好看(( 如果你像我在这里一样解决它 https://jsfiddle.net/79dLek7p/
var PD = { currentPage : 1, rowCount : 10, search : 5 };
PD = JSON.stringify(PD);
var redirectPost = function(location, args) {
var form = '';
$.each(args, function(key, value) {
form += '<input type="hidden" name="'+key+'" value=\''+value+'\'>';
});
$('<form action="'+location+'" method="POST">'+form+'</form>').appendTo('body').submit();
};
redirectPost('index.php', { data : PD });
您将看到$ _POST [&#39;数据&#39;]作为json编码的字符串,您可以按照之前的建议使用json_decode。