从循环中的PHP文件中获取值不会更新

问题描述 投票:0回答:1

我试图在另一个查询数据库的PHP文件中重复调用一个函数。我们的想法是,当新值输入到数据库中时,循环就可以获取它们。

调用和循环似乎有效。但是没有获取数据库中的新值。

由于调用是在JS中完成的,我尝试使用XMLHttpRequest()但没有成功。

该调用设置“持续时间”的值。这是我希望在循环过去时更新的值。

“first()”位于“api.php”中。

<?php
  include 'api.php';
?>

<script>

$(document).ready(function(){

  var duration;

  (function theLoop (i) {
  setTimeout(function () {
  if (--i) {          
  theLoop(i);  

         duration = <?php echo first("aaa"); ?>

         if(duration > 29){

               window.location.href = 'http://www.google.com';

         }
         else if(duration < 29){
         }                   
  } 

 }, 3000);
})(100);

});
</script>
javascript php mysql
1个回答
2
投票

您的问题是PHP代码只在页面加载时运行一次,并且会为您提供HTML代码。页面中的JS将使duration始终引用PHP代码第一次运行时的值。

你真的需要为此使用AJAX并创建一个新的PHP页面来调用它将在每次发出请求时运行。

jQuery JS:

// HERE YOU DO A AJAX GET REQUEST
$.get({
   // PASS VALUES TO THE PHP
   data: {
      "first": "aaa"
   },
   url: THE URL TO YOUR PHP PAGE,
   // THE SUCCESS FUNCTION IS WHAT WILL RUN WHEN THE GET COMPLETES SUCCESSFULLY
   success: function(duration) {
     // DO WHAT YOU WERE GOING TO DO
     if(duration > 29){
           window.location.href = 'http://www.google.com';

     }
     else if(duration < 29){
     }            
   },
   error: A FUNCTION TO HANDLE WHAT TO DO IF THE REQUEST DOES NOT COMPLETE
});

PHP

<?php
   include 'api.php';

   // GET THE PARAMETER FROM THE JS
   $firstParam = $_GET["first"]
   echo first(firstParam);
?>
© www.soinside.com 2019 - 2024. All rights reserved.