我在对包含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代码。
答案 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();
}
});
}
}
);
});