将Javascript数组传递给PHP

时间:2017-05-02 19:06:36

标签: javascript php arrays ajax

我使用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显示我的数组

ajax post

此图显示我的PHP页面上的GET控制台日志为空。

get on php

1 个答案:

答案 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中的意外输入,并且可能对安全性有更多的偏执。