Я создал 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']));
Я определил проблемы с вашим PHP-кодом, которые вызвали неправильное заполнение данных в таблице.
Основная проблема заключалась в том, чтобы делать с плохой логикой раздел, который пишет теги. Например, переменная $ row, используемая для записи атрибутов данных, полностью отличалась от переменной $ row, используемой для записи содержимого TD. Кроме того, вы писали атрибуты данных первого тега TD, прежде чем даже искали расписание для этого пользователя. Я обновил код в этом разделе, так что полный тег TD написан в двух областях: либо с запланированными данными, либо без него. Код по-прежнему довольно грязный, но по крайней мере теперь он работает. Кроме того, в строке 57 кода в пастебине, который вы опубликовали, была неверная цитата между закрывающим тегом php (?>). Это было:?>> Это должно быть:?> "
Несколько небольших наблюдений: - Bootstrap CSS был связан дважды (один локальный, один удаленный). Не часть вопроса, просто наблюдение. - Закрывающий тег для формы и окружающего div был в неправильном порядке. Закройте форму перед div.
Вот рабочий код для правильного заполнения атрибутов данных и содержимого таблицы:
// Code removed at request of OP.
Это проблема 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']));
}
Надеюсь, я помог тебе.
Проблема заключается в вашем 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, который вы написали, отлично работает в этом случае.
user_id
является правильным.
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-кодом.