繁体   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