2012-02-28 6 views
5

यहां मैं मूवी आईडी भेजता हूं और उपलब्ध दिन प्राप्त करता हूं और मैं इसे कैलेंडर में सेट करना चाहता हूं। लेकिन यह काम नहीं कर रहा है और यह सभी तिथियों को अक्षम करता है। PHP से यह दिनांक स्ट्रिंग देता है। तिथि स्ट्रिंग सही तरीके से आ रही है लेकिन कैलेंडर काम नहीं कर रहा है। कृपया मदद करे।jQuery UI डेटपिकर में केवल विशिष्ट तिथियां चुनें (दिनांक सूची AJAX से आता है)

दिनांक स्ट्रिंग उदाहरण

"28-02-2012","29-02-2012","01-03-2012","02-03-2012","03-03-2012","04-03-2012","05-03-2012","06-03-2012","07-03-2012","08-03-2012","09-03-2012","28-02-2012","29-02-2012","01-03-2012","02-03-2012","03-03-2012","04-03-2012","05-03-2012","06-03-2012","07-03-2012","08-03-2012","09-03-2012" 

कोड

jQuery.post('index.php', { 
    'option': 'com_movie', 
    'controller': 'reservation', 
    'task': 'datelist', 
    'format': 'raw', 
    'mid': movieid 
}, function(result) { 
    var onlydates = result.split(','); 
    jQuery("#datepicker").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    showOn: "button", 
    buttonImage: "<?php echo IMAGES_LINK.'calendar.png';?>", 
    buttonImageOnly: true, 
    beforeShowDay: function(date) { 
     dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear(); 
     console.log(dmy + ' : ' + (jQuery.inArray(dmy, onlydates))); 
     if (jQuery.inArray(dmy, onlydates) != -1) { 
     return [true, "", "Available"]; 
     } else { 
     return [false, "", "unAvailable"]; 
     } 
    } 
    }); 
    return; 
}); 
+0

@ सुधीर हाँ, लेकिन जब से मैंने पहले शोवडे लिया: फ़ंक्शन() http://stackoverflow.com/questions/7709320/jquery-ui-datepicker-enable-only- विशिष्ट- days-in-array मैंने इसका उपयोग किया प्रारूप। लेकिन इससे पहले कि मैंने वाई-एम-डी का इस्तेमाल किया लेकिन काम नहीं किया। – Sara

+0

आपको console.log में क्या मिलता है (dmy + ... –

+0

मुझे इसके बारे में कोई जानकारी नहीं है। मैंने http://stackoverflow.com/questions/7709320/jquery-ui-datepicker-enable- केवल-विशिष्ट-दिन-इन-सरणी। जब मैंने परिभाषित दिन सरणी पारित की तो यह काम करता है। – Sara

उत्तर

12
  • केवल एक बार datapicker प्रारंभ; एक वैश्विक सरणी
  • से मान्य दिनांक लाने के लिए यह बताना शाब्दिक शृंखला का उपयोग कर वैश्विक सरणी प्रारंभ, AJAX के माध्यम से इसे अद्यतन जब भी आवश्यक
  • कॉल .datepicker("refresh") विधि जब भी विकलांग/सक्षम तारीखें बदलने - यानी जब आप AJAX के माध्यम से नए परिणाम प्राप्त
  • आपका कोड तिथियों के लिए अग्रणी शून्य नहीं जोड़ता है इसलिए $.inArray अपेक्षा के अनुरूप काम नहीं होगा

var datelist = []; // initialize empty array 

$("#datepicker").datepicker({ 
    beforeShowDay: function(d) { 
     // normalize the date for searching in array 
     var dmy = ""; 
     dmy += ("00" + d.getDate()).slice(-2) + "-"; 
     dmy += ("00" + (d.getMonth() + 1)).slice(-2) + "-"; 
     dmy += d.getFullYear(); 
     return [$.inArray(dmy, datelist) >= 0 ? true : false, ""]; 
    } 
}); 

$("#button").click(function() { 
    datelist = []; // empty the array 
    $.post("/echo/html/", { 
     // parameters here 
    }, function() { 
     var result = "28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012,28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012"; // dummy result 
     datelist = result.split(","); // populate the array 
     $("#datepicker").datepicker("refresh"); // tell datepicker that it needs to draw itself again 
    }); 

Demo here

+0

क्या एक अच्छा जवाब !!!! बहुत बहुत धन्यवाद। – Sara

+0

मीठा मैं अपने बालों को खींच रहा था कि यह आंशिक रूप से क्यों काम कर रहा था - i अग्रणी शून्य गायब था! अच्छी तरह से देखा :) +1 –