Nano Hash - криптовалюты, майнинг, программирование

Плагин jQuery fullcalendar не отображает события, полученные из базы данных

Я пытаюсь добавить некоторые события в полный календарь на своей веб-странице. Но он извлекает значения из базы данных, но не показывает результаты в календаре.

php

$q = "SELECT * FROM `events` ORDER BY `id`";
$result = $mysqli->query($q) or die(mysql_error());
echo json_encode(mysqli_fetch_array($result));

js

var calendar = $('#calendar').fullCalendar({
    editable: true,
    header: {
        left: 'prev,next',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    events: "http://localhost/xxx/events.php",
    eventRender: function(event, element, view) {
        if (event.allDay === 'true') {
            event.allDay = true;
        } else {
            event.allDay = false;
        }
    },
    selectable: true,
    selectHelper: true,
    select: function(start, end, allDay) {
        var title = prompt('Event Title:');
        var url = prompt('Type Event url, if exits:');
        if (title) {
            var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss");
            var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss");
            $.ajax({
                url: 'http://localhost/xxx/add_events.php',
                data: 'title='+ title+'&start='+ start +'&end='+ end +'&url='+ url ,
                type: "POST",
                success: function(json) {
                    alert('Added Successfully');
                }
            });
            calendar.fullCalendar('renderEvent',
                {
                    title: title,
                    start: start,
                    end: end,
                    allDay: allDay
                },
                true // make the event "stick"
            );
        }
        calendar.fullCalendar('unselect');
    },
    editable: true,
    eventDrop: function(event, delta) {
        var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss");
        var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss");
        $.ajax({
            url: 'http://localhost/xxx/update_events.php',
            data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id ,
            type: "POST",
            success: function(json) {
                alert("Updated Successfully");
            }
        });
    },
    eventResize: function(event) {
        var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss");
        var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss");
        $.ajax({
            url: 'http://localhost/xxx/update_events.php',
            data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id ,
            type: "POST",
            success: function(json) {
                alert("Updated Successfully");
            }
        });

json

{"0":"1","id":"1","1":"1","userid":"1","2":"sample","title":"sample","3":"2013-12-03 08:52:20","start":"2013-12-03 08:52:20","4":"2013-12-05 08:52:20","end":"2013-12-05 08:52:20","5":"0","allday":"0"}

Пожалуйста, помогите мне решить эту проблему...


Ответы:


1

Судя по вашему JSON, ваша проблема заключается в том, что плагин jQuery fullCalendar требует, чтобы все значения даты и времени были преобразованы в отметку времени UNIX.

Это может помочь datetime - преобразовать дату в unixtime php - php - CodeRoad

04.12.2013
  • Спасибо за ваш быстрый ответ. Теперь я преобразовал date в unixtimestamp, JSON стал {"userid":"1","title":"sample","start":1386057140,"end":1386229940,"allday":"0"}, но событие не отображается. 04.12.2013
  • Возможно, случаи некоторых ваших параметров не соответствуют объекту события. например измените allday на allDay, и если вы собираетесь его использовать, не используйте 0/1, а вместо этого используйте true/false без двойных кавычек. userid также не является частью объекта события, что также может вызывать некоторые проблемы. Надеюсь, это поможет. 04.12.2013
  • Извините, это не работает, я изменил allday на allDay и userid на id, а также попытался удалить allDay, но это не работает. 04.12.2013
  • Джастед посмотрел, как я реализовал это на своем сайте. Попробуйте $(document).ready(function() { $('#calendar').fullCalendar({ ... }); }); вместо var calendar = ... 04.12.2013
  • Если я удалю объекты var also the result is same. If I enter the event вручную, это сработает. Это мой json в правильном формате??? 04.12.2013
  • Опубликуйте свой новый JSON и дайте мне посмотреть. Другая возможная ошибка связана с источником события. Я бы не указывал это как событие, а указывал параметр eventSources AJAX: eventSources: [ { url: 'http://localhost/7starprojects/secure/events.php', type: 'GET', error: function () { alert('Error grabbing calendar data!'); } } ] И удалял параметр eventRender до тех пор, пока вы не сможете отображать события из своей ленты. 04.12.2013
  • это мой новый json {"id":"1","title":"sample","allDay":true,"start":1386057140,"end":1386229940} 04.12.2013
  • давайте продолжим это обсуждение в чате 04.12.2013

  • 2

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

    Array[
       Jason Objects {},{},{} as many as you want
    ]
    

    для меня приведенный ниже код работает как шарм.

    $data = array(
        array(
            'id' => $event->_id
            'title' => $event->eventName,
            'start' => date($event->start)
        )
    );
    return Response::json($data);
    

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

    Надеюсь, это поможет, счастливого кодирования :)

    24.11.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..