AJAX POST中的空“ $ _POST”值

时间:2019-01-06 06:15:05

标签: javascript php jquery ajax

当试图在php端显示$ _POST的结果时, 当我使用“ array(0){}”时:

<?php
var_dump($_POST);
?>

我尝试了最基本的解决方案,在其中创建了一个新按钮,该按钮执行了一个称为“ sendAJAX()”的新功能:

<head>
<script>    
function sendAJAX(){
       $.ajax({
           method: "POST",
           url: "includes/displayAJAX.php",
           data: { name: "John Doe", age: "19" }
       }).done(function( msg ) {
           alert(msg);
       });
window.top.location = "includes/displayAJAX.php";
}
</script>
</head>

<div class="container-login100-form-btn">
<button onclick="sendAJAX()">POST</button>
</div>

在php文件中,它很简单:

<?php
print $_POST["name"];
?>

我收到成功警报,并弹出预期的数据,但是当我重定向到该PHP页面“未定义的索引:名称”而不是“ name:john doe,age:19”

1 个答案:

答案 0 :(得分:0)

您不能直接从PHP页面本身检查$_POST的结果。

当结果被发送回调用ajax函数时,您必须对其进行检查。

一种好的方法是使用浏览器的控制台。

您的ajax应该如下所示:

function sendAJAX(){
       $.ajax({
           method: "POST",
           url: "includes/displayAJAX.php",
           data: { 
             name: "John Doe",
              age: "19" 
            },
           dataType: 'json',
           cache: false,
           success: function(data){
             console.log(data); //Use your browser's console to see your data here.
           }

       });
    });

您的php应该如下所示:

<?php
echo json_encode($_POST);
?>

如果在此之后您需要重定向到另一个页面,则可以在ajax的成功函数中添加适当的代码。

像这样:

success: function(data){
             window.top.location = "path/to/another/page.php";
          }

希望有帮助。