Помогите с выбором календаря
Когда нет выбора - плохо.
Когда выбор слишком большой - еще хуже. Нужен календарь для вывода дат, настраиваемый по стилям, на русском. Но одно требование обязательно: Аяксом получаю массив дат в будущем. То есть, есть массив дат. Эти даты в календаре должны быть каким-то образом выделены. Где рыть? Где искать? На jQuery есть хорошие календари. Они позволят применить такую опцию? Или на чистом js? php в данном случае не хочу использовать. Буду раз за подсказки. Заранее благодарен. |
Эдди,
http://api.jqueryui.com/datepicker/ Цитата:
Цитата:
|
Спасибо. Сейчас изучу.
Я правильно понимаю, что это тот же Datepicker UI? Я нашел его полное описание на русском. |
Цитата:
|
Установил календарь jQuery UI.
Вот только не нахожу опцию пометки определенных дат из имеющегося массива. -( |
Эдди,
<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <title>jQuery UI Datepicker - Default functionality</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/sunny/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <style type="text/css"> body{ font-size: 12px; } .active .ui-state-default{ background: rgba(102, 255, 102, 1) } .active:hover .ui-state-default{ background: rgba(255, 255, 0, 1) } </style> <script> $(function() { var x = new Date(2012,1,29); $.datepicker.regional['ru'] = { closeText: 'Закрыть', prevText: '<Пред', nextText: 'След>', currentText: 'Сегодня', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showOtherMonths:true, selectOtherMonths:true, changeMonth:true, changeYear: false, showAnim:"scale" }; var arr_data = [[2014,5,12],[2014,5,14]]; $.datepicker.setDefaults($.datepicker.regional['ru']) $( '#datepicker' ).datepicker({ beforeShowDay: function(date) { for (var i=0; i<arr_data.length; i++) { var d = arr_data[i]; if (date.getTime() == (new Date(d[0],d[1],d[2])).getTime()) return[true, "active", "Важная дата"]; } return[true, ""];} }) }); </script> </head> <body> <div id="datepicker"></div> </body> </html> |
Если я понимаю, то вот эта функция за мои "чаяния" ответственна:
var arr_data = [[2014,5,12],[2014,5,14]]; $( '#datepicker' ).datepicker({ beforeShowDay: function(date) { for (var i=0; i<arr_data.length; i++) { var d = arr_data[i]; if (date.getTime() == (new Date(d[0],d[1],d[2])).getTime()) return[true, "active", "Важная дата"]; } return[true, ""];} }); |
Эдди,
Цитата:
|
Уж больше разжевать и невозможно, кажется.
Пока перешел к следующему фрагменту кода. Но сюда вернусь. СПАСИБО! |
Еще вопрос. Наверное, я вас утомил.
Но не хочется сделать криво. Календарь выдает дату в формате d-m-Y. Просто так клиенту удобнее. А мне надо переформатировать дату для запроса ajax к скрипту php. Могу, конечно, уже в php разобрать строку. Но, думаю, это неправильно. В JS есть функция (простая, иначе легче сделать в php), которая переформатирует дату в Y-m-d? Спасибо! |
Часовой пояс GMT +3, время: 23:51. |