Это проблема JQuery или PHP

0

Я создал jsfiddle для следующей проблемы. Я попытался воссоздать его, но это сложно, потому что данные отображаются на сервере с PHP из базы данных MySQL.

У меня есть таблица, и я пытаюсь передать содержимое с нажатой <td> в мой modal box. Если этого не было, модальный блок должен появиться с идентификатором пользователя, но поля ввода пустые.

По какой-то причине идентификатор пользователя изменяется отлично, но входы времени начала и окончания времени не работают! Кроме того, когда я проверяю элемент, он отображает 8 - 5 для всех пользователей? Кто-нибудь знает, почему это происходит?

php-код с параметрами click + data

        for($dow = 0; $dow <= 6; $dow++) {
            ?><td class="js-clickable" data-user_id="<?php echo $user_id; ?>" data-start_time="<?php echo $row['st']; ?>" data-end_time="<?php echo $row['et']; ?>"<?php
                if (array_key_exists($dow, $list)) {
                    foreach ($list[$dow] as $row) {
                        if ($row['user_id'] == $user_id) {
                            echo date("H:i", strtotime($row['st'])) . " - " . date("H:i", strtotime($row['et']));
  • 0
    Воспроизведение проблемы в jsfiddle указывает на то, что проблема не связана с PHP.
  • 0
    @showdev Я так не думаю, потому что в разметке data-end_time и data-start_time для Майкла отображаются как data-end_time="2015-03-27 17:30:00" data-start_time="2015-03-27 08:30:00" . так что я думаю, что проблема с вашим PHP-кодом.
Показать ещё 10 комментариев
Теги:

3 ответа

0
Лучший ответ

Я определил проблемы с вашим PHP-кодом, которые вызвали неправильное заполнение данных в таблице.

Основная проблема заключалась в том, чтобы делать с плохой логикой раздел, который пишет теги. Например, переменная $ row, используемая для записи атрибутов данных, полностью отличалась от переменной $ row, используемой для записи содержимого TD. Кроме того, вы писали атрибуты данных первого тега TD, прежде чем даже искали расписание для этого пользователя. Я обновил код в этом разделе, так что полный тег TD написан в двух областях: либо с запланированными данными, либо без него. Код по-прежнему довольно грязный, но по крайней мере теперь он работает. Кроме того, в строке 57 кода в пастебине, который вы опубликовали, была неверная цитата между закрывающим тегом php (?>). Это было:?>> Это должно быть:?> "

Несколько небольших наблюдений: - Bootstrap CSS был связан дважды (один локальный, один удаленный). Не часть вопроса, просто наблюдение. - Закрывающий тег для формы и окружающего div был в неправильном порядке. Закройте форму перед div.

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

// Code removed at request of OP.
  • 0
    Кроме того, у меня в заголовке были тэги заголовков и т. Д., Я должен был скопировать и вставить их неправильно в pastebin, ха-ха, но спасибо за указание на ошибки в моем коде, это приятно изучить, иначе я бы продолжил делать это так !
  • 0
    Как насчет того, чтобы просто оставить код основного цикла и удалить все остальное, это круто?
Показать ещё 7 комментариев
1

Это проблема PHP, потому что она была написана на PHP.

Теперь почему это происходит так, как это может быть на date("H:i", strtotime($row['start_time'])) и я думаю, что ожидаемое значение ($row['start_time'] и $row['end_time']) не возвращают ожидаемую строку функции strtotime.

Проверьте свой код на этом блоке и проверьте, как он возвращается.

if ($row['user_id'] == $user_id) {
    echo date("H:i", strtotime($row['start_time'])) . " - " . date("H:i", strtotime($row['end_time']));
}

Надеюсь, я помог тебе.

  • 0
    Извините, что вы подразумеваете под "не возвращать ожидаемую строку"
  • 0
    Нет @ewjfhweufh, что блок кода правильный, так как значения правильно отображаются в таблице.
1

Проблема заключается в вашем PHP коде, так как разметка HTML показанная на скрипке, ясно показывает, что время data-end_time и data-start_time для Майкла показано как data-end_time="2015-03-27 17:30:00" data-start_time="2015-03-27 08:30:00".

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

Jquery, который вы написали, отлично работает в этом случае.

  • 0
    Он действительно получает значения правильно. Значения типа данных для полей в базе данных также являются правильными.
  • 0
    Но когда вы посмотрите на HTML-код, вы увидите, что значения для времени не верны, в то время как значение для user_id является правильным.
Показать ещё 17 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню