Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在PHP中使用AJAX发布数据_Javascript_Php_Ajax - Fatal编程技术网

Javascript 在PHP中使用AJAX发布数据

Javascript 在PHP中使用AJAX发布数据,javascript,php,ajax,Javascript,Php,Ajax,我想将数据从一页传递到另一页。我尝试了下面的代码。result_display.php总是给我一个空的_POST数组。如果有人能告诉我哪里错了,我将不胜感激。谢谢 index.php <?php ini_set('display_errors', 'On'); error_reporting(E_ALL); ?> <!DOCTYPE html> <html lang="en"> <head> <title>js save se

我想将数据从一页传递到另一页。我尝试了下面的代码。result_display.php总是给我一个空的_POST数组。如果有人能告诉我哪里错了,我将不胜感激。谢谢

index.php

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <title>js save session</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<input type="submit" id="mybutton" value="My Button">


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script>
    $(document).ready(function () {

        $("#mybutton").click(function () {

            $.ajax({
                method: "POST",
                url: "./result_display.php",
                data: {name: "John", location: "Boston"}
            })
                .done(function (msg) {
                    console.log("Data Saved: " + msg);
                });

            window.location.href = "result_display.php";
        });
    });
</script>
</body>
</html>

js保存会话
$(文档).ready(函数(){
$(“#我的按钮”)。单击(函数(){
$.ajax({
方法:“张贴”,
url:“./result\u display.php”,
数据:{姓名:“约翰”,地点:“波士顿”}
})
.done(函数(msg){
console.log(“保存的数据:“+msg”);
});
window.location.href=“result\u display.php”;
});
});
result_display.php

<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

<?php
    var_dump($_POST);
?>

您需要删除发送AJAX调用后正在执行的重定向


删除:
window.location.href=“result\u display.php”

我将重定向放回测试。运行index.php之后,在AJAX调用之后立即重定向到result_display.php。我发现了为什么会有“追帖”。有人知道为什么吗?请参阅附加的屏幕截图。

尝试将“传统”参数添加到ajax调用中,就像这里的一个答案:谢谢回复。完全一样。我首先运行index.php。然后刷新result_display.php,仍然得到一个空的POST数组。啊,我误解了。其他评论是正确的。如果你先发帖子,然后发GET,这是两个独立的请求。GET将没有数据。如果在GET中需要这些参数,则将它们作为查询字符串参数发送:window.location.href=“result\u display.php?name=John&location=Boston”;那你可能根本就不需要这个帖子了。谢谢你,敏捷的。谢谢你的解释,谢谢你的回复。我删除了你提到的行,并添加了agileMike建议的传统属性。完全一样。我首先运行index.php。然后刷新result\u display.php,仍然得到一个空的\u POST数组。这是因为重定向语句吗?但是如果我删除重定向语句,我如何检查result\u display.php中的_POST数组呢?您不能。。。当您在浏览器中加载该页面时,您正在执行GET请求_帖子将是空白的。如果您想保存ajax请求的结果以供以后查看,则必须将其保存到数据库中,并通过附加查询参数(如
?id=5
)将其加载,以便显示结果知道要加载的记录……您可以使用表单将数据发布到结果页。如果您希望将数据发送到PHP脚本,在其上运行一些代码,返回一些内容,然后在当前页面中使用返回的数据,那么AJAX非常棒。实际上,您返回数据并将其存储在“msg”中,您将其写入控制台,然后再次重定向到php脚本,正如mpen所提到的,它以这种方式使用GET请求,因此重定向时没有要读取的数据。