Ici, j’envoie un identifiant de film et obtiens les jours disponibles et je veux le définir dans le calendrier mais cela ne fonctionne pas et désactive toutes les dates. Depuis PHP, il retourne la chaîne de date. La chaîne de date arrive correctement mais le calendrier ne fonctionne pas. S’il vous plaît aider.
Exemple de chaîne de date
"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"
Code
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: "", 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; });
.datepicker("refresh")
chaque fois que les dates désactivées / activées changent – c’est-à-dire lorsque vous obtenez de nouveaux résultats via AJAX $.inArray
dates, donc $.inArray
ne fonctionnera pas comme prévu 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 });
Démo ici