1

我们有以下从后端 .php 脚本获取数据的 jquery。一切正常。需要帮助的是如何在不按下按钮的情况下执行此操作,而是每隔 30 秒或 1 分钟间隔执行一次相同的操作。以下是我们当前的脚本?

<script> 
$(document).ready(function() {
    $("#searchBtn").click(function(){
     $(this).attr('src', 'images/searching.png');

     var data = $(this).val();

     var dateFrom=document.getElementById("beginDate").value;
     dateFromArray=dateFrom.split("/");     
     var myDateFrom=new Date(dateFromArray[2],dateFromArray[1],dateFromArray[0]);

     var dateTo=document.getElementById("endDate").value;
     dateToArray=dateTo.split("/");                           
     var myDateTo=new Date(dateToArray[2],dateToArray[1],dateToArray[0]);

     mysqlDateFrom=dateFromArray[2]+"-"+dateFromArray[1]+"-"+dateFromArray[0];
     mysqlDateTo=dateToArray[2]+"-"+dateToArray[1]+"-"+dateToArray[0];     


     $.post('getBK.php', {b: mysqlDateFrom,e: mysqlDateTo}, function(data){
          $("#searchBtn").attr('src', 'images/search.png');
            $('#dbData').html(data);            
         }
     );
   }
   );
 }
);
</script>
4

3 回答 3

2
<script> 
$(document).ready(function() {

function myfunc(){
 $("#searchBtn").attr('src', 'images/searching.png');

 var data = $("#searchBtn").val();

 var dateFrom=document.getElementById("beginDate").value;
 dateFromArray=dateFrom.split("/");     
 var myDateFrom=new Date(dateFromArray[2],dateFromArray[1],dateFromArray[0]);

 var dateTo=document.getElementById("endDate").value;
 dateToArray=dateTo.split("/");                           
 var myDateTo=new Date(dateToArray[2],dateToArray[1],dateToArray[0]);

 mysqlDateFrom=dateFromArray[2]+"-"+dateFromArray[1]+"-"+dateFromArray[0];
 mysqlDateTo=dateToArray[2]+"-"+dateToArray[1]+"-"+dateToArray[0];     


 $.post('getBK.php', {b: mysqlDateFrom,e: mysqlDateTo}, function(data){
  $("#searchBtn").attr('src', 'images/search.png');
    $('#dbData').html(data);            
  }
 );
  }

  myfunc();
  setInterval( function(){ myfunc(); } , 30000 );  

   });
 </script>
于 2013-09-07T05:38:26.220 回答
2

利用setInterval()

$(function(){
    // set interval
    var tid = setInterval(mycode, 30000);
    function mycode() {
      // place your button click logic over here
    }
    function abortTimer() { // to be called when you want to stop the timer
      clearInterval(tid);
    }

});
于 2013-09-07T05:41:01.987 回答
1

要在加载 DOM 时自动运行 POST 到 PHP,然后使用该setInterval()函数,如下所示:

$(document).ready(function() {
    setInterval(function() {
        // Do something every 30 seconds
        $.post('getBK.php', {b: mysqlDateFrom,e: mysqlDateTo}, function(data){
            $("#searchBtn").attr('src', 'images/search.png');
                $('#dbData').html(data);            
            }
        );
    }, 30000);
);

注意:第二个值setInterval()是以毫秒为单位的间隔时间(因此 30000 表示 30 秒或 60000 表示 1 分钟)。

于 2013-09-07T05:38:38.617 回答