2010-05-14 32 views
1

所以我使用datepicker插件來製作可用性日曆。這是我的javascript: http://pastebin.com/H7D9PcAgjQuery datepicker日曆 - 調用函數更新數據庫

當調用dpSetSelected()時,它也調用dateSelected(),它會觸發對我的PHP腳本的AJAX調用。我需要一種方法來只更新數據庫,如果點擊日期而不是預先加載的。當我預先加載日期時,它們被髮送到PHP頁面,隨後被刪除。

+0

而我的PHP腳本存儲「預訂」日期: http://pastebin.com/ip12s2C5 。 和預加載日期到腳本: http://pastebin.com/ThjZ9Vu5 – erbaker 2010-05-14 18:46:57

回答

1

我與作者交談並使用他的建議:

$(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'];?>); 
      } 
     ); 
}); 

這會在啓動任何綁定之前更新所選日期,以避免腳本無意中更新。

+0

好的信息。另一種方法來剝皮貓。 – 2010-05-14 20:11:42

2

爲什麼不將AJAX調用綁定到更改函數而不是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'];?>); 
    }); 

到:

.change(function() { 
    $("#info").load("test1.php?date="+$(this).val()+"&land-id="+<?=$_GET['eid'];?>); 
    }); 
+0

嗨布拉德利, 我已經嘗試了點擊和更改綁定,但它似乎並不像我可以通過選定的日期(變種selectedDate)。另外,如果我看起來很像datePicker.js,看起來像dateSelect只是調用change()無論如何 – erbaker 2010-05-14 19:47:22

+0

我只是在.change()函數中使用$(this).val()來獲取更改後的值。 – 2010-05-14 20:01:28

+0

確認此工作以及提交下面的另一個解決方案。謝謝布拉德利! – erbaker 2010-05-14 20:06:13

相關問題