簡體   English   中英

如何在setInterval函數中動態將變量傳遞給PHP腳本調用?

[英]How can i dynamically pass variables to a PHP script call within setInterval function?

我這里有一個腳本,該腳本應該在設定的時間間隔內將php腳本輸出加載到指定的“ div”中,並且能夠通過將兩個“選擇”列表中的值發送到該腳本來應用過濾器。 在Stack上另一個主題的幫助下,我已經意識到第一件事,它列在$(document).ready()事件中。 但是然后我有$(“#status_filter”)。change()和$(“#car_filter”)。change()事件。 他們應該首先停止refreshId interval函數,然后更改我應該發送到PHP腳本的變量,使用更改后的變量重新加載內容,然后再次啟動refreshId循環。 結果,我讓循環使用零值,但是瀏覽器不響應從列表中選擇選項。 我已經使用了一段時間的代碼部分,但無濟於事。 如果可以,請你幫助我。

var status_filter = 0;
var car_filter = 0;

$("#status_filter").change(function() {
    clearInterval(refreshId);
    status_filter = $(this).val();
    $("#content").load("get_orders.php?status=" + status_filter + "&car=" + car_filter);
    var refreshId = setInterval(function() {
        $("#content").load("get_orders.php?status=" + status_filter + "&car=" + car_filter);
    }, 30000);
});

$("#car_filter").change(function() (
    clearInterval(refreshId);
    car_filter = $(this).val();
    $("#content").load("get_orders.php?status=" + status_filter + "&car=" + car_filter);
    var refreshId = setInterval(function() {
        $("#content").load("get_orders.php?status=" + status_filter + "&car=" + car_filter);
    }, 30000);
});

$(document).ready(function() {
    $("#filterBar").load("get_filters.php");
    $("#content").load("get_orders.php?status=" + status_filter + "&car=" + car_filter);
    var refreshId = setInterval(function() {
        $("#content").load("get_orders.php?status=" + status_filter + "&car=" + car_filter);
    }, 30000);
});

我將此腳本放置在頁面的head'head'標簽中。 不過,我還沒有檢查是否將所有腳本放在單獨的文件中並進行鏈接是否有幫助。 我還擔心相信js在頁面關閉或瀏覽器關閉之前將其變量保持活動狀態是錯誤的。

您是否嘗試過setTimeout() 您可以使用此功能創建一個簡單的循環功能。 下面的代碼每秒將打印出一個數字,然后再次調用自身。

 $(function() { var counter = 0; var loop = function() { setTimeout(function() { $('body').append(++counter); loop(); }, 1000); } loop(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

可以為您量身定制這樣的循環功能:

function loop(status, car) {
//Check Values of status and car, set defaults otherwise.
    setTimeout(function() {
        $("#content").load("get_orders.php?status=" + status + "&car=" + car);
          loop();
    }, 1000);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM