[英]PHP read array object from javascript data object
我在 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 ['data'] 值? 谢谢
编辑(完整代码)
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
看起来您正在寻找json_decode()函数。 但是,这不会创建 PHP 对象,而是会变成这样的数组: $data['currentPage']
。 看看你是否有更多的运气:
$data = json_decode($_POST['data']);
var_dump($data);
看起来好像您的 JavaScript 对象已转换为字符串[object Object]
,您需要在发布之前对您的 JavaScript 对象进行JSON.stringify
。
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 数据后,正如 Phil 指出的那样,您应该能够对它进行json_decode
首先,您的 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['data'] 作为 json 编码的字符串,您可以按照之前的建议进行 json_decode。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.