gpt4 book ai didi

php - 为什么这个 javascript/jQuery JSON 解析代码不起作用?

转载 作者:行者123 更新时间:2023-11-30 18:57:32 24 4
gpt4 key购买 nike

这是我的 jQuery 代码。它应该解析 this 返回的 json PHP 脚本。已知 php 可以工作。它还应该将日期文字转换为 javascript 日期对象。但是,在 dates.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);
}
});
}

最佳答案

您的日期选择器代码将(可能)在 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");

}

编辑:顺便说一句,如果是我,我可能会将其拆分为某种调用函数以获取日期数据并为其提供回调。例如:-

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);
}
});
});

关于php - 为什么这个 javascript/jQuery JSON 解析代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1445529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com