Self-POST AJAX请求

时间:2018-08-06 16:25:39

标签: php ajax

我在对包含AJAX请求的php类运行AJAX请求时遇到一些问题。 AJAX请求被称为使用按钮,并且部分起作用。

我的AJAX请求保存在header.php文件中,该文件包含在我的kpi2.php中。如果我为AJAX调用的测试文件(在同一目录中)指定“ url”,则POST成功,并且可以看到输出。如果我删除了确实会发布到同一页面的“ url”选项,那给我的印象是什么,我在这里做错了什么?

function executeRefresh(){
        if (control){
            $(".loader").show();
            $.ajax({
                type: "POST",
                data: { refresh: '1' }, 
                success: function(json) {
                    if(!json.error) location.reload(true);
                    $(".loader").hide();
                }
            });
        }
    }

未指定url时输出(意味着应将其发布到调用AJAX的同一文件中)

Written from /home/kpi/pages/kpi2.phpArray
(
)

当我具有选项 url:“ test.php” (具有完全相同的输出,但只是在不同的文件中)时,这是输出。

Written from /home/kpi/pages/test.phpArray
(
    [0] => refresh
)

编辑: 要获得从上面生成的输出,请执行简单的导出。

$v1 = print_r(array_keys($_POST),true);
$fp = fopen('../data/output.json', 'w');
fwrite($fp, 'Written from /home/kpi/pages/test.php'.$v1);
fclose($fp);

对于控制变量,它只是一个简单的侦听器,其正确与否取决于是否单击了控制键。它确实有效,而且我以前从未遇到过问题。

至于location.reload(),我尝试将其删除,现在看来它甚至都没有编写php代码。

1 个答案:

答案 0 :(得分:0)

最初在header.php中,我在导航栏上有一个按钮,该按钮将调用AJAX函数,从而使kpi2.php(包括header.php)张贴了一些内容。一旦发布,它将调用另一个php类。

相反,我做的是摆脱了onclick = executeRefresh(),然后只是专门听了kpi2.php类中的按钮按下。这样,我可以立即执行对另一个类的AJAX请求,而无需对该类进行不必要的发布请求。

 $(function() {
        $(".btnRefresh").click( function()
            {
                if (control){
                    $(".loader").show();
                    $.ajax({
                        url:"../setup/kpi_quality.php",
                        type: "GET",
                        data: { casp: 'AVANT-CAP-321' }, // name of the post variable ($_POST['id'])
                        success: function(json) {
                            //if(!json.error) location.reload(true);
                            $(".loader").hide();
                        }
                    });
                }
            }
        );
    });