jQuery datepicker日历-调用函数更新数据库

jQuery datepicker日历-调用函数更新数据库,jquery,datepicker,Jquery,Datepicker,所以我使用datepicker插件来制作一个可用性日历。以下是我的javascript: 当调用dpSetSelected()时,它也会调用dateSelected(),这会触发对我的PHP脚本的AJAX调用。我需要一种方法,只更新数据库,如果日期是点击,而不是预加载。当我预加载日期时,它们会被发送到PHP页面并随后被删除。为什么不将AJAX调用绑定到change函数而不是dateSelected?这样,当预加载日期时,不会发生任何事情,但如果您通过单击日期来更改日期,它将触发。对于我已经实现

所以我使用datepicker插件来制作一个可用性日历。以下是我的javascript:


当调用dpSetSelected()时,它也会调用dateSelected(),这会触发对我的PHP脚本的AJAX调用。我需要一种方法,只更新数据库,如果日期是点击,而不是预加载。当我预加载日期时,它们会被发送到PHP页面并随后被删除。

为什么不将AJAX调用绑定到change函数而不是dateSelected?这样,当预加载日期时,不会发生任何事情,但如果您通过单击日期来更改日期,它将触发。对于我已经实现的日期选择器,这似乎很好:

$("#startDate, #endDate")
    .datepicker({
        showOn: 'button',
        buttonImage: '/images/icon_calendar.png',
        duration: 0 })
    .change(function() {
        //do stuff
    });
因此,对代码进行以下更改:

.bind(  'dateSelected', function(e, selectedDate, $td, state) {
    $("#info").load("test1.php?date="+encodeURIComponent(selectedDate)+"&land-id="+<? =$_GET['eid'];?>);
  });
.bind('dateSelected',函数(e,selectedDate,$td,state){
$(“#info”).load(“test1.php?date=“+encodeURIComponent(selectedDate)+”和land id=“+);
});
致:

.change(函数(){
$(“#info”).load(“test1.php?date=“+$(this.val()+”&land id=“+);
});

我与脚本作者交谈,并采纳了他的建议:

$(function()
    {
    var passedDates = $('#passed-dates').val().split(','); // works okay


    var dp = $('.date-pick')
        .datePicker(
            {
                createButton:false,
                closeOnSelect:false,
                selectMultiple:true,
                inline:true
            }
        );

        for (var i = 0; i < passedDates.length - 1; i++) 
        {
            dp.dpSetSelected(passedDates[i]);
        }

        dp.bind(
            'click',
            function()
            {
                $(this).dpDisplay();
                this.blur();
                return false;
            }
        )
        .bind(
            'dateSelected',
            function(e, selectedDate, $td, state)
            {
                $("#info").load("test1.php?date="+encodeURIComponent(selectedDate)+"&land-id="+<?=$_GET['eid'];?>);
            }
        );
});
$(函数()
{
var passedDates=$(“#传递的日期”).val().split(“,”);//工作正常
var dp=$(“.date pick”)
.日期选择器(
{
createButton:false,
closeOnSelect:false,
selectMultiple:true,
内联:对
}
);
对于(变量i=0;i

这将在触发任何绑定之前更新所选日期,以防止脚本意外更新。

和用于存储“预订”日期的我的PHP脚本:。并将日期预加载到脚本中:嗨,布拉德利,我已经尝试了单击和更改绑定,但似乎无法传递所选日期(var selectedDate)。另外,如果我深入研究datePicker.js,dateSelect似乎只是调用change(),我只是在.change()函数中使用$(this).val()来获取更改后的值。确认这一点有效,并在下面提交了另一个解决方案。谢谢你,布拉德利!当然!感谢您发布替代解决方案。好信息。另一种剥猫皮的方法。
$(function()
    {
    var passedDates = $('#passed-dates').val().split(','); // works okay


    var dp = $('.date-pick')
        .datePicker(
            {
                createButton:false,
                closeOnSelect:false,
                selectMultiple:true,
                inline:true
            }
        );

        for (var i = 0; i < passedDates.length - 1; i++) 
        {
            dp.dpSetSelected(passedDates[i]);
        }

        dp.bind(
            'click',
            function()
            {
                $(this).dpDisplay();
                this.blur();
                return false;
            }
        )
        .bind(
            'dateSelected',
            function(e, selectedDate, $td, state)
            {
                $("#info").load("test1.php?date="+encodeURIComponent(selectedDate)+"&land-id="+<?=$_GET['eid'];?>);
            }
        );
});