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