在jQuery日历中突出显示数据库中的日期

时间:2014-07-24 06:39:55

标签: jquery mysql calendar datepicker

我使用Keith Wood的jQuery Datepicker。

日历链接到数据库。

从同一个数据库中选择日期后,当使用以下代码显示为弹出窗口(点击相关输入字段后)时,这些日期会在日历中正确突出显示:

<input type="text" id="datepicker" name="datephp" value="<?php echo $allgluedatesok;?>"> 
<script>
    $( "#datepicker" ).calendarsPicker({
            inline:true,
            multiSelect: 999,
            monthsToShow: 2
    });
</script>

为了更好的可用性,最好始终显示此日历。

在这种情况下,当我使用以下代码时,日期不会突出显示...

<div id="datepicker"></div>
<input type="hidden" id="hiddenFieldIDphp" name="datephp" value="<?php echo $allgluedatesok;?>"> 

<script>
    $( "#datepicker" ).calendarsPicker({
            inline:true,
            multiSelect: 999,
            monthsToShow: 2,
            altField : '#hiddenFieldIDphp'
    });
</script>

有人知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

似乎当您将Keith Wood的datepick日历链接到altField时,只有datepick对象更新altField而不是相反...

因此,当您将日期放在输入的value属性中时,使用datepick日历事件不会触发任何事件,但是当您在内联日历中选择日期时,输入会正确更新。

因此,解决方案是使用PHP的结果在javascript中手动设置datepick日历的日期:

<script>
    $( "#datepicker" ).calendarsPicker({
        inline:true,
        multiSelect: 999,
        monthsToShow: 2,
        altField : '#hiddenFieldIDphp'
    });
    $( "#datepicker" ).calendarsPicker('setDate',<?php echo $commaseparatedDateStrings; ?>);
</script>

但请注意,PHP字符串$commaseparatedDateStrings现在必须是类型:'07/31/2014','08/01/2014','08/02/2014'(带引号!)等等,以便将其正确解析为javascript的'setDate'函数参数。 ..

PS:我在代码中留下了calendarsPicker(),但是当我下载了Keith Wood的日期选择器时,扩展名被称为:datepick() ...

<小时/> 编辑:似乎要添加多个日期,你必须使用一个数组,而不是无限期地传递许多参数,就像我上面说的那样......所以'setdate'的行应该变为:

$("#datepicker").calendarsPicker('setDate',[<?php echo $commaseparatedDateStrings;?>]);