Php 为什么这个javascript/jQuery JSON解析代码不起作用?
这是我的jQuery代码。它应该解析php脚本返回的json。众所周知,php可以工作。它还应该将日期文字转换为javascript日期对象。但是,在Php 为什么这个javascript/jQuery JSON解析代码不起作用?,php,javascript,jquery,json,datepicker,Php,Javascript,Jquery,Json,Datepicker,这是我的jQuery代码。它应该解析php脚本返回的json。众所周知,php可以工作。它还应该将日期文字转换为javascript日期对象。但是,在日期.length发生错误。有人能看出代码有什么问题吗 if($("#calendar").length) { var dates; $.post("/dates/jsondates.php",function(data) { for(var i=0; i<data.length; i++)
日期.length发生错误。有人能看出代码有什么问题吗
if($("#calendar").length)
{
var dates;
$.post("/dates/jsondates.php",function(data)
{
for(var i=0; i<data.length; i++)
{
data[i].start = new Date(data[i].start);
data[i].end = new Date(data[i].end);
}
dates = data;
}, "json");
$("#calendar").datepicker(
{
beforeShowDay: function(date)
{
for(var i=0; i<dates.length; i++)
{
if(dates[i].start<date<dates[i].end)
{
return new Array(0, "booked", dates[i].comment);
}
}
return new Array(1);
}
});
}
if($(“#日历”).length)
{
风险值日期;
$.post(“/dates/jsondates.php”),函数(数据)
{
对于(var i=0;i来说,问题在于您的日历日期选择器代码是在AJAX处理完成之前执行的
日期选择器代码需要进入$.post回调函数内部,在for循环下面,在dates=data行下面;
您的日期选择器代码将(可能)在ajax调用完成之前被执行。至少,尝试将代码的日期选择器部分移动到$.post回调中:-
if ($("#calendar").length)
{
var dates;
$.post("/dates/jsondates.php",function(data)
{
for(var i=0; i<data.length; i++)
{
data[i].start = new Date(data[i].start);
data[i].end = new Date(data[i].end);
}
dates = data;
$("#calendar").datepicker(
{
beforeShowDay: function(date)
{
for(var i=0; i<dates.length; i++)
{
if(dates[i].start<date<dates[i].end)
{
return new Array(0, "booked", dates[i].comment);
}
}
return new Array(1);
}
});
}, "json");
}
if($(“#日历”).length)
{
风险值日期;
$.post(“/dates/jsondates.php”),函数(数据)
{
对于(var i=0;i
function __callDateController(callback)
{
$.post("/dates/jsondates.php",function(data)
{
for(var i=0; i<data.length; i++)
{
data[i].start = new Date(data[i].start);
data[i].end = new Date(data[i].end);
}
if (callback !== undefined) {
callback(data);
}
}, "json");
}
__callDateController(function(dates)
{
$("#calendar").datepicker(
{
beforeShowDay: function(date)
{
for(var i=0; i<dates.length; i++)
{
if(dates[i].start<date<dates[i].end)
{
return new Array(0, "booked", dates[i].comment);
}
}
return new Array(1);
}
});
});