簡體   English   中英

如何通過php從數據庫獲取數據到javascript變量?

[英]How do I fetch data from database through php to javascript variable?

我有一個jQuery UI datepicker。 我想將數據發送到該功能。 我使用.post函數通過PHP文件從數據庫中獲取數據作為“數據”。 我無法訪問數據,因為數據已返回.post函數內部。 我想要它到外部變量dat以便可以使用它。 實際上,數據是要禁用的日期。

我的代碼:

$(function () {
    var dat = "";
    var unavailableDates = ["10-5-2013", "14-5-2011", "15-5-2011"];
    var dt = "id=1";
    $.post("fetch.php", dt, function (data) {});
    dat = data;

    function enableFirday(date) {
        dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
        var day = date.getDay();
        return [((day == 6 || day == 5 || day == 3) && $.inArray(dmy, unavailableDates) < 0), ''];
    }
    $("#d").datepicker({
        beforeShowDay: enableFirday
    });
});

函數內部的第三行中有一個變量unavailableDates 我想從數據庫中獲取一些日期並保留在該變量中。

我以為我可以使用.post從數據庫中獲取數據,以便可以使用。 但是數據是從PHP文件返回的,而不是復制到變量dat 從PHP文件返回的內容可以在.post函數內部使用,但不能在外部使用。 如何將數據獲取到.post函數之外。 請幫我。 在我的項目中獲取數據非常有必要。

AJAX調用(您的$.post() )是異步的。 您的JS代碼將運行.post()函數,然后立即繼續。 除非您擁有快速的網絡鏈接,否則幾乎不可能從AJAX調用返回響應並填充data變量。

這就是AJAX調用帶有回調處理程序的原因,當服務器收到響應時JS將調用該回調處理程序,因此您的代碼應為

var dat;
$.post(url, dt, function(data) {
    dat = data;
    enableFirday(); // or whatever your code should do once you get a response.
});

暫無
暫無

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

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