这应该很简单,但不起作用
基本上我想获得一个返回结果并重新加载我的页面,如果答案是'是'
这是 的 timer.php
<?php
$filename = 'timer.tmr';
if (file_exists($filename)) {
unlink($filename);
echo 'yes';
} else {
echo 'no';
}
?>
这是我主文件中的脚本
var myVar = setInterval(function () {myTimer()}, 5000);
function myTimer() {
sendto = "timer.php";
$.get(sendto, function(data, status) {
if (data === 'yes') {
location.reload();
}
});
}
基本上在 timer.php
中如果文件存在,我将其删除并返回“是”&#39;
但是jquery
没有执行重新加载功能,如果我使用警报(数据)检查数据,它会返回“是”和“#”。所以我只是不明白这个问题。
答案 0 :(得分:2)
如果您进入if
条件,则应尝试使用window.location.href = window.location.href;
代替location.reload();
如果您未进入if
条件,请使用if ($.trim(data) === "yes")
更改条件
这是最终的解决方案
var myVar = setInterval(function () {myTimer()}, 10000);
function myTimer() {
sendto = "timer.php";
$.get(sendto, function(data, status) {
if ($.trim(data) === "yes"){
location.reload();
}
});
}
它需要修剪(数据)必须有一些东西..
答案 1 :(得分:0)
在回声中使用json_encode并改进您的检查:
<?php
$filename = 'timer.tmr';
if (file_exists($filename)) {
unlink($filename);
if (!file_exists($filename))
echo json_encode('yes');
else
echo json_encode('no');
} else {
echo json_encode('no');
}
?>
并将重新加载更改为更直接的范围:
var myVar = setInterval(function () {myTimer()}, 5000);
function myTimer() {
sendto = "timer.php";
$.get(sendto, function(data, status) {
if (data === 'yes'){
window.location.reload();
}
});
}
答案 2 :(得分:0)
让我们完成ajax请求,然后尝试重新加载:
setTimeout(function(){// wait for 5 secs(2)
location.reload(); // then reload the page.(3)
}, 5000);
答案 3 :(得分:0)
我建议,请检查类型转换(数据类型)。我发现,你已经使用了===,它会检查字符串到字符串或int到int。