Обязательно. В коде я исправил минуту спустя, но вы наверно успели прочитать код с моей ошибкой. Код 404 - страница не найдена. Т.е. путь указан не верно. Указывайте абсолютный путь, например, от корня сайта (слеш в начале пути) --- Добавлено --- Если файл уже в корне, то '/function.php'. Если, к примеру, в директории 'my_dir', то '/my_dir/function.php'
Файл лежит в корне, добавил слеш в js все ровно ошибка осталось такой же. --- Добавлено --- Опечатка у меня functions.php название файла) Теперь выводится вот что:
Судя по всему, данные переданные в функцию плагин не устроили. В плагине есть условие: если есть данные в jsonData, то разбирать их, в противном случае, отрабатывает запрос к файлу events.json, которой прописан по умолчанию. В начале функции выведите в консоль переменную data: Код (Javascript): function initCalendar (data) { console.log(data); /* остальной код */ }
Пустой массив. Где-то не правильно отработал сценарий. Проверяйте functions.php. Кстати, вы должны были там учесть две ситуации: когда есть POST-данные и когда их нет. Ведь в первом случае, вы просто подключаете файл на страницу и вызываете определенные функции, а во втором случае (когда Ajax), вызов функций должен быть в самом файле functions.php
Как все затянуто) второй случай вызов функции initCalendar(<?php echo $events; ?>); в файле functions.php этой что ли? Вот что я заметил я просто возвращал return $_POST['predmet']; в файле выбора предмета который передавался дальше во вторую функцию. Сделал по другому: Спойлер: Пример функции PHP: function get_predmet() { # если в сессии есть ID юзера, то показываем все его коменты if(isset($_SESSION['uid'])) { # сохраняем сессию в переменную $uid = $_SESSION['uid']; # глобальная переменная подключения global $pdo; # выбираем наши предметы из базы и подставляем в селект их $checkUser = $pdo->prepare(' SELECT `tb1`.`id`, `tb1`.`naimenovanie`, `tb2`.`uid`, `tb2`.`rid` FROM `predmet` `tb1` LEFT JOIN `user_predmet` `tb2` ON `tb1`.`id` = `tb2`.`rid` WHERE `tb2`.`uid` = ?'); $checkUser->execute([$uid]); $result = $checkUser->fetchAll(PDO::FETCH_ASSOC); if($result) { echo '<form action="" method="POST" class="my_class">'; echo '<select name="predmet">'; echo '<option>Выберие предмет</option>'; # через массив перебираем наши предметы которые приходят из базы foreach ($result as $key => $value) { $s = ($value['id'] == $key) ? 'selected': ''; printf('<option value="%s" %s>%s</option>', $value['id'], $s, $value['naimenovanie']); } echo '</select>'; echo '<input type="submit" value="Выбрать"/>'; echo '</form>'; # возвращаем id предмета return $value['id']; }else{ // вызываем функцию о которой ты говоришь } } } И что теперь получается у меня в консоле: Такое ощущение что ему не нравится как я храню дату и время в базе.
@_ne_scaju_, я вообще удивляюсь, что у вас там хоть что-то работает )) Если у вас вызывается функция get_predmet() в самом верху документа, то судя по коду, у вас там же и должна выводиться форма, т.е. даже до <!DOCTYPE html> и открытия тега <html>. Кроме того, при Ajax-запросе, если эта же функция вызывается, то форма должна примешиваться к ответу. И по логике, в консоли должна быть ошибка, т.к. JSON-строка + код формы должны вызвать ошибку при парсинге. Короче, запаковывайте все ваши файлы и дамп базы в архив и закидывайте сюда, иначе будем долго и нудно ковырять эту тему.
Я тоже так думал, но обычно на форуме не смотрят что в архиве находится, прикрепил файл. По критикуй код по возможности, мне интересно что же не так)
Я смотрел сквозь пальцы и делал вид, что сейчас это самый писк моды. Вы же понимаете, что я не ставил цель переписать ваш код по всем канонам, а только сделать его рабочим. Держите --- Добавлено --- P.S. Дерьмовенький плагин вы нашли... Документации нет, необходимые методы отсутствуют, написан кривенько.
@Deonis я находил и по лучше плагин, вроде называется fullcalendar, может не парится с ним а взять этот о котором написал, в нем вроде есть документация) Сейчас взгляну что вы изменили сразу увижу стиль, спасибо.
Работает как надо, как я хотел. Отпишусь когда код посмотрю. И так: session_status интересная функция в первые вижу, возвращает состояние текущей сессии) PHP_SESSION_NONE ну и понятно эту константу в первые вижу, тоже почитал что она делает, нужно взять на заметку. В ответку спрошу, когда и в каких случаях использовать эту функцию и константу, просто там есть и другие константы) Вот что еще в запросе я заметил 'test' AS `type`, у меня в базе нет ни типа ни тест таблиц, от куда значит значения? Посмотрел код проанализировал, по сути я тыкался вокруг правильного ответа но так и не сообразил из-за маленькой практики или не знания чего либо, да мне ваш стиль нравится) Ну и последнее что хочу сказать, попробуйте выбрать предмет и жмите отправить несколько раз, увидите чудо, запись будет дублироваться, походу где-то нужно добавить очистку.
Экспериментировал. В примерах к плагину, есть файл events.json, там же можно заметить элемент type, вот и хотел посмотреть, на что он влияет. Ошибочка. Там ваш стиль с моей примесью Ответ я уже озвучил выше:
Еще одно у меня была кнопочка которая при переходе на главную очищала сессию) вы мне просто дали красивый стиль кнопке при переходе на главную, сессия остается) ну может я оставлю как есть просто кнопку выход еще добавлю) У меня в планах еще будет добавить редактировать и удалить запись) Думаю посижу подумаю если что не получится обращусь в эту же тему) --- Добавлено --- @Deonis Убрал 'test' AS `type`, из запроса, потом когда пользователь выбирает предмет и жмет кнопку отправить несколько раз то запись получается типа вида, как обнулить результаты?
В третий раз повторю, что нет у этого плагина методов, которые расширили функционал до необходимого минимума. Вариант один - дописывать этот функционал самому. Но на это у меня нет ни времени, ни желания.
@Deonis а теперь понял) не ну можно просто сделать типа val('') добавить в ajax запрос; что то с пустыми кавычками. Или это к этому не значится) Или придумать условие повторная отправка запрещена, если юзер хочет еще раз отправить форму) или же отредиректить на ту же страницу только с пустым значением. Ну хорошо пусть будет так пока)
@Deonis Все я поставил стили как считаю нужным добавил еще 2 кнопки, выход и календарь, если юзер перешел на главную он может вернутся в календарь нажав на кнопку, логично. Подскажи пожалуйста добавления данных по клику на дату в календаре можно реализовать и каким способом это можно сделать?
Обработчиков событий можно установить сколько угодно, если устанавливать не через свойство и не inline. Другой вопрос в том, как вы будете распределять действия: когда нужно по клику показать список уже существующих задач, а когда добавить новую?
@Deonis Думаю делать так, если в этот день стоит коммент, то пользователю будет доступно только редактирования события и удаления. Если день свободен то можно добавлять коммент. Ах да сейчас же по клику загружается список задачи на какой либо день если они есть. Если их нет то можно просто же вызвать модал окно с полями ввода и добавить задачу.
@Deonis Либо же можно просто под низом календаря кнопочку добавить событие и дальше проверять занял ли день если да сообщить об этом.
@Deonis смотри можно что еще сделать, добавить кнопку редактировать тебе открывается список событий которое можно потом будет или удалить или отредактировать, как то представление у меня такое) просто я не знаю как мне вывести кнопку удалить там где выводятся события.
Это надо лезть в код плагина, смотреть где генерируется HTML-код списка и добавлять туда свою кнопку. В кнопку, в data-атрибут, выводить ID задачи. HTML: <button data-id="100500" class="del_task">Грохнуть запись</button> Дальше обработчик: Код (Javascript): $(document).on('click', '.del_task', function(){ var id = $(this).data('id'); // получаем ID задачи и отправляем Ajax-ом для удаления });