Я пытаюсь вставить в jQuery
полные данные календаря, которые в этом случае представляют дни рождения пользователей. Я получаю дни рождения из MySQL
данных MySQL
. Давайте посмотрим на скрипт
php
:
if ($birthday_r = $connection->query("SELECT CONCAT(name,' ',surname),MONTH(birthday),DAY(birthday) FROM users")){ while ($birthday_row = $birthday_r->fetch_row()){ $birthday_array[] = array( 'title' => $birthday_row[0], 'start' => Date("Y") . "-" . $birthday_row[1] . "-" . $birthday_row[2] ); } $json = json_encode($birthday_array); birthday_r->free(); }
Затем, как вы видите сохранение этой json-кодированной информации в переменной $json
jQuery("#calendar").fullCalendar({ // initialize full calendar header: { left: 'prev,next today', center: 'title', right: 'month,basicWeek,basicDay' }, <?php if (isset($json_encode)){echo "events: " . $json . ",";} ?> viewDisplay: function(view){ var i = view.title.slice(-4); }, renderEvent: function(event){ } });
Это работает хорошо, когда страница загружена, но я хочу, чтобы после изменения повестки дня (например, нажмите кнопку «Далее» или «предыдущие кнопки»), чтобы каждый год рождения показывался в календаре. Для этого я посоветовал использовать функции viewDisplay
и renderEvent
, но я не могу изменять переменную года как в php, а также в javascript. in viewDisplay
function variable i
– числовое значение года (например, 2012). Моя проблема заключается в том, чтобы как-то обновить Date("Y")
с переменной i
в функцию renderEvent
. Также я попытался сохранить полученную информацию в переменную javascript, например: =>
в этом примере рассмотрено, что в php задано
'start' => $birthday_row[1] . "-" . $birthday_row[2] // php // below JavaScript code var json_obj = <?php if (isset($birthday_array)){echo $birthday_array;} ?> var d = new Date(); for (var i=0;i<json_obj.length;i++){ json_obj[i] = d.getFullYear() + "-" + json_obj[i]; } // this scripts works as well but I can not manipulate after prev or next buttons are pressed on calendar
PS. Я думаю, ребята, понимаю, что я пытаюсь сделать, PLS помочь мне, как это сделать. Большое спасибо заранее 🙂
Ну, самые простые решения могут заключаться в изменении вашего цикла PHP и добавлении «нескольких» лет к вашим событиям.
while ($birthday_row = $birthday_r->fetch_row()){ $yearBegin = date("Y"); $yearEnd = $yearBegin + 10; // edit for your needs $years = range($yearBegin, $yearEnd, 1); foreach($years as $year){ $birthday_array[] = array( 'title' => $birthday_row[0], 'start' => $year . "-" . $birthday_row[1] . "-" . $birthday_row[2] ); } }
Два недостатка:
Вы также можете взглянуть на демонстрацию с повторяющимися событиями, чтобы создать внешнее решение.