Есть ли способ стилизовать определенные данные, полученные из MySQL? - PullRequest
0 голосов
/ 09 апреля 2019

Я извлекаю данные из базы данных 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"

Ответы [ 3 ]

1 голос
/ 09 апреля 2019

заменить <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>
0 голосов
/ 09 апреля 2019

Предполагая, что status имеет только 2 возможных значения: EXP или PAID.

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

<td><span class="badge badge-<?php echo $row["status"] == "EXP" ? 'danger' : 'success' ?>"><?php echo escape($row["status"]); ?></span></td>
0 голосов
/ 09 апреля 2019

Возможно, это то, что вы ищете?

Я обернул ваш диапазон по мере необходимости и сделал его немного более читабельным с помощью обозначения ":" вместо фигурных скобок

<?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} по своему вкусу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...