2012-02-15 2 views
0

Я пытаюсь использовать jQuery Datepicker для отображения определенной информации из файла JSON в зависимости от даты, выбранной пользователем. Файл JSON будет содержать массив с событиями для определенного города и даты. Моя проблема заключается в том, что я не знаю, как использовать выбранную дату для создания JSON-файла.JQuery Datepicker с файлом JSON

Мой код:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#datepicker').datepicker({ 
      dateFormat: 'yy-mm-dd', 
      inline: true, 
      minDate: new Date(2012, 1 - 1, 1), 
      maxDate:new Date(2012, 12 - 1, 31), 
      altField: '#datepicker_value', 
      onSelect: function(){ 
       var day1 = $("#datepicker").datepicker('getDate').getDate();     
       var month1 = $("#datepicker").datepicker('getDate').getMonth() + 1;    
       var year1 = $("#datepicker").datepicker('getDate').getFullYear(); 
     fullDate = year1 + "" + month1 + "" + day1; 
    var proba = "<center><p>:<b> "+fullDate+"</b></p></center>"; 
     var output = $.getJSON("example.json", function(data){ 

    $.each(data, function(index,entry){ ??? 
    $('#page_output').append(html); 
    }); 
    }); 

       $('#page_output').html(proba, output); 

      } 
     }); 
    }); 

    </script> 

JSON файл, example.json:

{ 
    "2012215":[{ 
      "Something1":"Blablabla", 
      "Title1":"Blabla", 
      "Description":["Blablabla", 
       "Blablablabl" 
      ], 
      "Something2":"Blablabla", 
      "Title2":"Blablabla" 
     } 
    ], 
    "2":[{ 
      "Something3":"Blaasdasdblabla", 
      "Title3":"Blabla", 
      "Description":["Blablabla", 
       "Blablablabl" 
      ], 
      "Something4":"Blablabla", 
      "Title4":"Blablabla" 
     } 
    ] 
} 

Вероятно, это очень просто и очевидно, но я не могу справиться с этой проблемой. Любая помощь будет оценена по достоинству.

+0

Что такое '2012231'? Это yyyymd? –

ответ

0

Объект, который вы возвращаете, можно рассматривать как карту или ассоциативный массив. Имея это в виду, клавиша для каждого элемента на карте выглядит так, что это формат даты yyyymd. Поскольку вы знаете, какая дата была выбрана, вы можете создать правильный ключ на основе частей этой даты.

$(document).ready(function(){ 
    $('#datepicker').datepicker({ 
      dateFormat: 'yy-mm-dd', 
      inline: true, 
      minDate: new Date(2012, 1 - 1, 1), 
      maxDate:new Date(2012, 12 - 1, 31), 
      altField: '#datepicker_value', 
      onSelect: function(){ 
       var day1 = $("#datepicker").datepicker('getDate').getDate();     
       var month1 = $("#datepicker").datepicker('getDate').getMonth() + 1;    
       var year1 = $("#datepicker").datepicker('getDate').getFullYear(); 
       var fullDate = year1 + "" + month1 + "" + day1; 
       var proba = "<center><p>:<b> "+fullDate+"</b></p></center>"; 
       $.getJSON("example.json", function (data){ 
        $.each(data["" + year1 + month1 + day1], function(index, entry) 
         /* Process the event and build HTML */ 
         $('#page_output').append(html); 
        }); 
       }); 
      } 
     }); 
}); 

Я не уверен, как именно вы хотите построить HTML, но с вышеизложенным, entry должен быть список событий, происходящих на выбранную дату.

+0

Все работает отлично! Спасибо! Я создаю HTML как $ .each (data ["" + fullDate], function (index, entry) {var html = ''; var + = '

'+entry.Something1+'
'; – rublow