Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个javascript/jQuery JSON解析代码不起作用?_Php_Javascript_Jquery_Json_Datepicker - Fatal编程技术网

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

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++)

这是我的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++)
        {
            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);
            }
        });
    });