我使用JavaScript将数据从文件转换为数组。我现在想使用表单中的输入来使用PHP搜索此数组,并将结果显示在表中。我已阅读了许多有类似问题的解决方案,但我不确定如何继续。
我已使用@Kevin_Kinsey发布的建议
更新了我的代码
我正在使用带有POST的ajax将数组传递给PHP
function sendPhp(reports) {
$.ajax({
type: 'POST',
url: 'reports.php',
data: JSON.stringify(reports),
contentType: 'application/json',
dataType: 'json'
});
}
然后我用它来用PHP接收它
<?php
$json = filter_input(INPUT_POST, "data", FILTER_SANITIZE_EMAIL);
//replace FILTER_DEFAULT with appropriate filter flags, as tight as possible
$dataObject = json_decode($json);
$dataArray = json_decode($json, true);
var_dump($json);
?>
我的页面现在在浏览器中显示NULL,并且在控制台中查看get请求显示没有收到任何数据。
有人可以指出我的错误吗?我不明白为什么没有传递数据。
此图显示控制台日志我的POST显示我的数组
此图显示我的PHP页面上的GET控制台日志为空。
答案 0 :(得分:0)
<?php
# get the data from POST, not stdin
$json = filter_input(INPUT_POST, "data", FILTER_DEFAULT);
//replace FILTER_DEFAULT with appropriate filter flags, as tight as possible
$dataObject = json_decode($json);
$dataArray = json_decode($json, true);
请注意,此处没有安全措施,除了您可以设置尝试清理输入的FILTER_FLAGS。您需要基于令牌的验证来防御XSS,并且应该在使用PHP脚本/处理程序的其余部分对其进行操作之前彻底测试JSON中的意外输入,并且可能对安全性有更多的偏执。