PHP未捕获ajax请求

时间:2018-07-25 07:47:55

标签: php jquery

我有这样的要求:

$(function(){
    $("#novaProfaktura").click(function(){
        $.ajax({
          type: "POST",
          url: "../Pages/Program.php",
          data: { action: "testing" },
          success: function()
          {
              alert("Ajax done"); //Testing purpose
          }
        });
        location.reload();
    });
});

然后在我的体内,我有这样的php:

<div id="Content">
    <?php
    echo("Php running <br>");
    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
        echo("Post running <br>");
        if($_POST['action'] = "testing")
        {
            echo("Action running <br>");
        }
    }

    ?>
</div>

我从中得到的是alert message,所以我假设ajax已正确设置并得到Php running,但它没有通过if($_SERVER['REQUEST_METHOD'] == 'POST'

您可以看到div点击时正在运行jQuery代码。

我在做什么错了?

编辑:我用过function(data),但它似乎不起作用,但它不仅返回echoed数据,而且返回整个页面。我使用了document.write(),它重写了整个页面,但是如何获得特定的回声值呢?

2 个答案:

答案 0 :(得分:0)

对此的答案是:

success: function()
{
    alert("Ajax done"); //Testing purpose
}

使用此:

success: function(data)
{
    alert("Ajax done"); //Testing purpose
    document.getDocumentById('emptyDiv').innerHTML = data;
}

现在作为数据,您从运行文档的功能中获取所有HTML文本,因此我使用的不是url: "../Pages/Program.php",而是分隔文件url: "../Php/Testing.php",而在该文件中  仅此代码:

<?php
    echo("Testing");
?>

答案 1 :(得分:-1)

$_POST['action'] = "testing"

这是变量赋值

$_POST['action'] == "testing"

这是比较。你想要这个。

$_POST['action'] === "testing"

这更好,因为它也是类型匹配的,它必须是字符串。