Не удается установить даты в календаре bootstrap из сгенерированной переменной даты? - PullRequest
0 голосов
/ 21 апреля 2020

Ожидаемое поведение

Все, что я пытаюсь сделать, это setDates после вызова ajax. У меня есть массив дат из PHP страницы. Таким образом, все даты должны отображаться как выбранные даты в bootstrap календаре.

Фактическое поведение

Список дат не отображается в качестве выбранных / установленных дат на bootstrap просмотр календаря. Тем не менее, он настраивается, если я передаю только одну дату, например, 23/04/2020, но если я передаю в переменную даты, подобные 23/04/2020, 24/04/2020, то она не устанавливается.

Используемая версия Datepicker

Datepicker для Bootstrap v1.8.0

Пример кода

$.ajax({
type: "POST",
url: "remove_data.php",
data: {ch: ch, dh: dh, sp_rec: sp_rec, cartDate: 1},
success: function(data) {
//console.log(data);

            var obj = $.parseJSON(data);

            var myDates = '';
            var temp,temp2;
            for(var i=0;i<obj.length;i++) {
                var temp = obj[i];
                var dt = new Date(temp);
                myDates = myDates+" "+dt+",";
                temp2= obj[1];//0=22 1=23
            }
            temp = "2020-04-23";
            //console.log(myDates);


            var dt2 = new Date(temp2);
            var dt1 = new Date(temp);
            //working...but I don't want this solution...
            $('#disc_single_datepicker_1').datepicker('setDates',[dt1,dt2]); //set two dates....

            //Not working...but I want to make work like below....
            $('#disc_single_datepicker_1').datepicker('setDates',[myDates]); //doesn't set any dates.....however it should set all the provided dates......



            display_toastr(datainfo+" record has been removed!","Remove Record",true,"right","info");
            $("#row_"+dh).fadeOut('slow');

        }, error: function() {
            alert("Something went wrong. Please contact admin!");
        }
    });

1 Ответ

1 голос
/ 21 апреля 2020

То, что вы пытаетесь сделать, невозможно.

Согласно документам :

setDates

Аргументы:

date[, date[, …]] (Date)

или

[date[, date[, …]]] (Array)

Я не уверен, что for l oop вы добавлен тот, с которым вы на самом деле работаете, но если вы это сделаете - не надо.
Просто выведите sh даты в массив и передайте их setDates:

var dates = [];
for (var i=0; i<obj.length; i++) {
  var dt = new Date(obj[i]);
  dates.push(dt); 
}
$('#disc_single_datepicker_1').datepicker('setDates',dates); 
...