jquery
  • ajax
  • jquery-ui
  • 2011-03-08 175 views 0 likes 
    0

    在我目前的項目中,當用戶選擇一個酒店,當他選擇到達日期,出發日期,我必須表明在jQuery的日期選擇在酒店無法日期爲殘疾人禁用日期動態jQuery的日期選擇器

    這是我的javascript代碼

    $("#select_villa").change(function(){ 
         $('#textfield1').datepicker("destroy");           
         var dataString = 'villa=' + $("#select_villa").val(); 
         $.ajax({ 
          type: "GET", 
          url: "include/getdate.php", 
          data: dataString, 
          dataType: "json", 
          success: function(data){ 
    
    
           $('#textfield1').datepicker({ 
            dateFormat: 'yy-mm-dd',            
            minDate: data[0].unavailable_date_from, 
            maxDate: data[0].unavailable_date_to 
           }); 
    
          } 
         }); 
         return false; 
        });  
    

    在這裏,我必須禁用的minDate和動態的maxDate根據數據庫的可用性日期。

    這是結果我得到當組合框的值改變

    [{"unavailable_date_from":"2011-03-03","unavailable_date_to":"2011-03-31"}] 
    

    這是我的PHP AJAX片段得到聯合國的可用日期

    <?php 
    include("db.php"); 
    $returnArray = array(); 
    $villa = $_GET['villa']; 
    
    $sql = mysql_query("SELECT unavailable_date_from, unavailable_date_to FROM villa WHERE name = '".$villa."'"); 
    
    while($row = mysql_fetch_object($sql)){ 
         $returnArray[] = $row; 
    } 
    echo json_encode($returnArray);?> 
    

    任何人能告訴我怎樣才能做到這一點

    謝謝

    回答

    1

    您可以更改選項(如minDatemaxDate)使用option method

    $('#textfield1').datepicker('option', { 
        minDate: newMinDate, 
        maxDate: newMaxDate 
    }); 
    

    所以,在你的AJAX成功處理程序,只拉新的日期出來的data[0].unavailable_date_fromdata[0].unavailable_date_to並如上發送給相應的datepickers。

    +0

    我試過了,但是當我改變我的代碼這樣,datepicker不工作:( – Mujahid 2011-03-08 08:52:32

    +0

    謝謝你的答案,我刪除了'選項'並嘗試,它工作正常,但有一件事我想做,我想要設置結果日期禁用和其他日期啓用,有沒有辦法,我可以做到這一點,謝謝 – Mujahid 2011-03-08 11:48:09

    +0

    @Mujahid:沒有'選項',你正在創建一個全新的日期選擇器,而不僅僅是更新選項('#textfield1')。datepicker('option',...)'? – 2011-03-08 20:29:14

    0

    如果你想禁用特定的日子,你可以使用日期選擇器的onSelect選項。

    例如:

    $('#textfield1').datepicker({ 
        dateFormat: 'yy-mm-dd',            
        minDate: data[0].unavailable_date_from, 
        maxDate: data[0].unavailable_date_to 
        onSelect: function(dateText, inst) { 
         if ($.inArray(dateText, data[0].unavailable_dates)) 
         { 
          alert('invalid date'); 
          // do whatever you like here 
         } 
        }); 
    
    } 
    

    PS我已經對你們返回的數據假設,但想你可以看到我在那裏得到。還要確保你的日期格式匹配從PHP到日期選擇器。否則,你需要在JavaScript中轉換爲日期數據類型。

    +0

    謝謝,但我可以完成一些不同的方式。非常感謝 – Mujahid 2011-05-10 05:37:25

    相關問題