我有一个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
});
});
在函数内部,第3行有一个变量unavailableDates
。我想从我的数据库中获取一些日期并保留该变量。
我以为我可以使用.post
从数据库中获取数据,以便我可以使用。但是数据是从PHP文件返回的,而不是复制到变量dat
。从PHP文件返回的内容可以在.post函数内部使用,但不能在外部使用。如何将数据传递到.post
函数之外。请帮帮我。在我的项目中获取数据是非常必要的。
答案 0 :(得分:1)
AJAX调用(您的$.post()
)ASYNCHRONOUS。您的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.
});