繁体   English   中英

将Javascript数组传递到PHP

[英]passing a Javascript array into PHP

我使用JavaScript将数据从文件转换为数组。 现在,我想使用表单中的输入来使用PHP搜索此数组并将结果显示在表中。 我已经阅读了许多解决类似问题的文章,但不确定如何进行。

我已使用@Kevin_Kinsey发布的建议更新了代码

我正在将ajax与POST一起使用,以将数组传递给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的控制台日志,该日志为空。

上PHP

<?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进行操作之前,彻底测试JSON中的意外输入,并且通常可能会对安全性有更多的偏执。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM