#php #html #css
#php #HTML #css
Вопрос:
У меня есть форма, в которой вы можете ввести заданное время, например, 12:30.
По умолчанию цвет таблицы синий, но я хочу, чтобы он менял цвет, если текущее реальное время равно 12:30 или выше (пример: 12: 40).
Мне нужно извлечь заданное время из базы данных (я уже справился с этим), но следующая часть — получить текущее время и, если оно равно или больше времени ввода, изменить цвет всей таблицы
(Inntid — это значение, в котором вы вводите свое собственное время)
HTML:
<table>
<tr>
<th>Båt ut</th>
<th>Båt inn</th>
<th>Båtnr</th>
<th>Fornavn</th>
<th>Etternavn</th>
<th>Tid</th>
<th>Kr</th>
</tr>
CSS:
table {
color: blue;
outline-style: solid;
width: 100%;
font-family: monospace;
font-size: 25px;
text-align:left;
}
th {
color: red;
font-family: monospace;
font-size: 25px;
text-align:left;
}
PHP:
$sok = @$_POST['searchh'];
$sql = "SELECT utleid, inntid, baatnr, fornavn, etternavn, tid, kr FROM utleie WHERE baatinn = '0' ORDER BY id desc";
$result = $conn-> query($sql);
if ($result-> num_rows > 0) {
while ($row = $result-> fetch_assoc()) {
echo "<tr><td>".
$row["utleid"] ."</td><td>".
$row["inntid"] ."</td><td>".
$row["baatnr"] ."</td><td>".
$row["fornavn"] ."</td><td>".
$row["etternavn"] ."</td><td>".
$row["tid"] ."</td><td>".
$row["kr"] ."</td></tr>";
}
echo "</table>";
}
else {
echo "0 results";
}
echo $row;
$conn-> close();
?>
</table>
Комментарии:
1. Вы пробовали использовать JavaScript для этого? Я бы так поступил
2. Я понял, что мне пришлось использовать javascript. Пробовал что-то, но потерпел неудачу: P
3. Для этого вам не нужен JS. Используя PHP для этого, вы устанавливаете класс по мере загрузки страницы и не зависите от рендеринга частей таблицы после ее загрузки. Я бы сказал, что использование JS требует больше усилий, чем выполнение этого при загрузке результатов в PHP.
Ответ №1:
Определите свой класс CSS таким, каким вы хотели бы, чтобы он был, если условие истинно, затем проверьте, равно ли время $row['tid']
текущей дате или больше — если true, добавьте этот класс в свой td
элемент.
CSS был бы чем-то вроде
.future_time {
background-color: red;
}
И ваш PHP был бы примерно таким,
<?php
$sok = @$_POST['searchh'];
$sql = "SELECT utleid, inntid, baatnr, fornavn, etternavn, tid, kr FROM utleie WHERE baatinn = '0' ORDER BY id desc";
$result = $conn-> query($sql);
if ($result-> num_rows > 0) {
echo '<table>';
$now = new DateTime();
while ($row = $result-> fetch_assoc()) {
$tid = new DateTime($row["tid"]);
$tid_class = $tid >= $now ? 'future_time' : '';
?>
<tr>
<td><?php echo $row["utleid"]; ?></td>
<td><?php echo $row["inntid"]; ?></td>
<td><?php echo $row["baatnr"]; ?></td>
<td><?php echo $row["fornavn"]; ?></td>
<td><?php echo $row["etternavn"]; ?></td>
<td class="<?php echo $tid_class; ?>"><?php echo $tid ?></td>
<td><?php echo $row["kr"]; ?></td>
</tr>
<?php
}
echo "</table>";
} else {
echo "0 results";
}
$conn-> close();
Комментарии:
1. Хм, похоже, не сработало. Может ли это быть потому, что DateTime () получает больше значений, чем просто часы и минуты. Или я ошибаюсь?
2.
DateTIme
Класс довольно умный. Каково фактическое значение$row['tid']
, в каком формате оно?3. И когда вы говорите «похоже, не сработало», вам нужно быть немного более конкретным. Что происходит, появляются ли какие-либо ошибки (если нет, вы их проверяете и регистрируете?)
4. Мне нужно было идти на работу, но я получил длинный код ошибки. Я проверю, когда приду домой.
5. Как вы можете видеть из этой изолированной среды , DateTime довольно умен и вычислит, что вы указываете ему только время (и по умолчанию это будет дата 1 января 1970 года, но это не имеет значения). Покажите вашу ошибку, без этого невозможно помочь .. 🙂