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 がロードされたときに PHP への POST を自動的に実行するには、次のように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);
);

注: の 2 番目の値setInterval()は、ミリ秒単位の間隔の時間です (したがって、30 秒の場合は 30000、1 分の場合は 60000)。

于 2013-09-07T05:38:38.617 に答える