if语句不工作jquery

时间:2017-05-22 12:44:47

标签: php jquery

这应该很简单,但不起作用

基本上我想获得一个返回结果并重新加载我的页面,如果答案是'是'

这是 的 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没有执行重新加载功能,如果我使用警报(数据)检查数据,它会返回“是”和“#”。所以我只是不明白这个问题。

4 个答案:

答案 0 :(得分:2)

如果您进入if条件,则应尝试使用window.location.href = window.location.href;代替location.reload();

如果您未进入if条件,请使用if ($.trim(data) === "yes")更改条件

谢谢Shaunak Shukla(再次感谢你)

这是最终的解决方案

     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。