Datepicker Jquery Ajax на основе ограничения дат - PullRequest
1 голос
/ 11 февраля 2012

Я почесал голову какое-то время, а потом обнаружил здесь некоторый код, опубликованный давным-давно, который выполнил трюк, однако он обновляет только один месяц, и объект, даже если он вызывается с помощью ajax, кажется, не обновляется. должным образом.

У меня плохой JS, и я умею рассказывать истории только из тех знаний программирования, которые у меня есть, выход JSON работает отлично и дозирует нужные мне значения.

У меня есть 1 блок выбора с раскрывающимся списком выбора рынка 2 Datepickers (от и до).

Идентификатор MarketID выводится правильно, но я все еще не могу сказать, в чем проблема, есть только данные за период с 2011 г. по декабрь 2012 г. по февраль с точки зрения дат, и отображается только декабрь 2011 г. Даже когда я пытаюсь использовать JSON, это данные.

Если бы вы, ребята, могли бы помочь мне с этим, было бы здорово!

<script>
var allowedDates = new Object();

function queryAllowedDates (year, month, id, market) {
  $.ajax({
    type: 'GET',
    url: '/pstars/api/api_calendardates.php',
    dataType: 'json',
    success: function(response) { 
      allowedDates[id] = response.allowedDates;
    },
    data: {year:year,month:month,market:market},
    async: false
  });
}

$("#date_from").datepicker({
  dateFormat: 'yy-mm-dd', 
  changeMonth: true, 
  changeYear: true ,
  beforeShow: function (input) {
    var currentDate = $(input).datepicker('getDate');
    var id = $(input).attr('id');
    var marketid = $('#d_market').val(); 
    queryAllowedDates(currentDate.getFullYear(), currentDate.getMonth()+1,id,marketid);
  },
  onChangeMonthYear: function (year, month, inst) {
    var marketid = $('#d_market').val();
    queryAllowedDates(year, month, inst.input.attr('id'),marketid);
  },
  beforeShowDay: function (day) {
    var id = $(this).attr('id');

    var date_str = [
      day.getFullYear(),
      day.getMonth() + 1,
      day.getDate()
    ].join('-');

    if (allowedDates[id] != undefined && allowedDates[id][date_str]) {
      return [true, 'good_date', 'This date is selectable'];
    } else {
      return [false, 'bad_date', 'This date is NOT selectable'];
    } 
  }
});

$("#date_to").datepicker({
      dateFormat: 'yy-mm-dd', 
      changeMonth: true, 
      changeYear: true ,
      beforeShow: function (input) {
        var currentDate = $(input).datepicker('getDate');
        var id = $(input).attr('id');
        var marketid = $('#d_market').val(); 
        queryAllowedDates(currentDate.getFullYear(), currentDate.getMonth()+1,id,marketid);
      },
      onChangeMonthYear: function (year, month, inst) {
        var marketid = $('#d_market').val();
        queryAllowedDates(year, month, inst.input.attr('id'),marketid);
      },
      beforeShowDay: function (day) {
        var id = $(this).attr('id');

        var date_str = [
          day.getFullYear(),
          day.getMonth() + 1,
          day.getDate()
        ].join('-');

        if (allowedDates[id] != undefined && allowedDates[id][date_str]) {
          return [true, 'good_date', 'This date is selectable'];
        } else {
          return [false, 'bad_date', 'This date is NOT selectable'];
        } 
      }
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...