@del993788

Как подружить две переменные, где одна из ajax?

Здравствуйте. Ситуация такова.

Есть php файл, который обращается к бд и выводит значение таблицы. Открыв свой php файл я увижу ["2016-12-03"], ["2016-11-25"],

На сайте у меня ajax функция, которая принимает это php сообщение:
$.ajax({
                type: "POST",
                url: "/php.php",
                data: $('#ajaxlogin').serialize(),
                success: function(msg){
                $('.a-info').text('Успешное подключение')
                $('.brondate').text(msg);
                }
            });

div brondate без проблем принимает вид: ["2016-12-03"], ["2016-11-25"],

Ниже у меня идёт код календаря с диапазоном дат
var array = ["2016-11-20","2016-11-25","2016-12-03",]

  $('#date_range').datepicker({
    range: 'period', // режим - выбор периода
    numberOfMonths: 2,
    dateFormat: "yy-mm-dd",
    minDate: 0,
    onSelect: function(dateText, inst, extensionRange) {
    	// extensionRange - объект расширения
      $('[name=startDate]').val(extensionRange.startDateText);
      $('[name=endDate]').val(extensionRange.endDateText);
    }
  });
// затемнение дат
$('#date_range').datepicker('option','beforeShowDay',
     function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [ array.indexOf(string) == -1 ,"", null ]
    }
);

Обратите внимание на "затемнение дат". В календаре даты, которые указаны в array, неактивны. Я хотел эту "неактивность" брать из бд, но array не хочет принимать значение msg от php
Как подружить array с сообщением из php? Я попытался сделать так
var bron = msg;
                }
            });
var array = bron

Но ничего не заработало.
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
Я у себя делала примерно так:

var forbiddenDates = {};

$.ajax({
	url: '/getForbiddenDates/',
	type: 'post',
	data: data,
	cache: false,
	success: function (response) {
		if(response.result) {
			var minDay = '+' + response.data.minDay + 'd';
		        forbiddenDates = response.data.forbiddenDates;

			$("#datepicker").datepicker("option", "minDate", minDay).val('').datepicker("refresh");
		}
		else {
			alert(response.data);
		}
	}           
});


В beforeShowDay:

function(d) {                            
	var dat = $.datepicker.formatDate('dd.mm.yy', d) + '';  
	if (array_key_exists(dat, forbiddenDates)) {
		var tip = 'Извините, на эту дату заказы не принимаются';
		if(forbiddenDates[dat] != '') {
			tip = forbiddenDates[dat];
		}
		return [true, 'ui-datepicker-unselectable ui-state-disabled', tip];
	}
	else {
		return [true, ''];
	}
}


Сервер возвращал json, даты записывались в forbiddenDates, после чего datepicker обязательно обновлялся.

UPD: forbiddenDates - json вида (тут еще передавались комментариии к каждому дню, у вас все проще будет):

"forbiddenDates":{"01.05.2015":"Праздничный день", "02.05.2015":"И сегодня не работаем", "03.05.2015":"Тоже отдыхаем"}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы