Я извлекаю данные из своей базы данных mySQL и вывожу их на свою страницу в порядке, однако я хочу стилизовать определенные данные на странице с помощью Bootstrap. Я пробовал писать функции для извлечения данных отдельно, но уверен, что делаю что-то не так.
Это для простой базы данных CRUD с использованием PHP и mySQL, оформленной с помощью Bootstrap 4 и JQuery. Я пытался написать функцию на странице вместо $row[status]
, но я думаю, что пропустил шаг.
Таблица должна выводить либо "EXP"
, либо "PAID"
под $row["status"]
.
<?php if (isset($_POST['submit'])) {
if ($result && $statement->rowCount() > 0) { ?>
<h2>Results</h2>
<table class = "table">
<thead>
<tr>
<th>ID</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) { ?>
<tr>
<td><?php echo escape($row["id"]); ?></td>
<td><?php echo escape($row["status"]); ?></td>
<td><a class = "btn btn-warning" href = "update-single.php?id=<?php echo escape($row["id"]); ?>">Edit</a></td>
</tr>
<?php } ?>
</tbody>
</table>
Если $row["status"]
из таблицы = "EXP"
я хочу обернуть его с помощью span HTML
пример: <span class = "badge badge-danger"> </span>
обернуть, иначе если "PAID"
<span class = "badge badge-success"> </span>
обернут вокруг "PAID"
заменить <td><?php echo escape($row["status"]); ?></td>
на:
<td>
<?php
if ($row["status"]=='EXP'){//assumes exp and paid are only option otherwise use an elseif
echo '<span class = "badge badge-danger">';
}else{
echo '<span class = "badge badge-success">';
}
echo escape($row["status"]).'</span>';
?>
</td>
Это решение было таким простым. Большое спасибо, сработало отлично!
Возможно, это то, что вы ищете?
Я обернул ваш диапазон по мере необходимости и сделал его более читабельным с помощью обозначения «:» вместо фигурных скобок.
<?php if (isset($_POST['submit'])): ?>
<?php if ($result && $statement->rowCount() > 0): ?>
<h2>Results</h2>
<table class = "table">
<thead>
<tr>
<th>ID</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) { ?>
<tr>
<td><?php echo escape($row["id"]); ?></td>
<?php if ($row["status"] === "EXP"): ?>
<td><span class = "badge badge-danger"><?php echo escape($row["status"]); ?></span></td>
<?php elseif ($row["status"] === "PAID"): ?>
<td><span class = "badge badge-success"><?php echo escape($row["status"]); ?></span></td>
<?php endif: ?>
<td><a class = "btn btn-warning" href = "update-single.php?id=<?php echo escape($row["id"]); ?>">Edit</a></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>
<?php endif; ?>
Если дублирование HTML не ваша вещь. Вы можете использовать переменную в цикле и изменить имя класса badge-{name}
по своему вкусу.
Спасибо, попробуем это!
Мне понравилось это решение, но оно было немного дублирующим. Спасибо.
Предполагая, что status
имеет только 2 возможных значения: EXP
или PAID
.
Вы можете изменить ячейку таблицы следующим образом:
<td><span class = "badge badge-<?php echo $row["status"] == "EXP" ? 'danger' : 'success' ?>"><?php echo escape($row["status"]); ?></span></td>
вы не можете просто сделать if\else и эхо?