Лучший способ установить значение выделения в php - PullRequest
0 голосов
/ 29 июня 2018

Я ищу хороший способ установить значение динамического HTML с php на основе данных из базы данных. В настоящее время это выглядит так:

<select class="form-control" name="displayNavigation" id="displayNavigation">
    @if(isset($site['displayNavigation']) and $site['displayNavigation'] == 1)
        <option value="1" selected>Yes</option>
        <option value="0">No</option>
    @elseif(isset($site['displayNavigation']) and $site['displayNavigation'] == 0)
        <option value="1">Yes</option>
        <option value="0" selected>No</option>
    @else
        <option value="1">Yes</option>
        <option value="0">No</option>
    @endif
</select>

Я думаю, что это неправильный способ установить значение для списка выбора с более чем 10 параметрами.

Есть ли другой способ сделать это?

Ответы [ 4 ]

0 голосов
/ 29 июня 2018

A PHP 7 ответ с использованием ноль оператора объединения ??:

<select class="form-control" name="displayNavigation" id="displayNavigation">
    <option value="1" <?php echo ($site['displayNavigation'] ?? 2) == 1 ? 'selected' : ''; ?>>Yes</option>
    <option value="0" <?php echo ($site['displayNavigation'] ?? 2) == 0 ? 'selected' : ''; ?>>No</option>
</select>

Если вы под PHP 7 , просто сделайте то же самое, используя isset():

<select class="form-control" name="displayNavigation" id="displayNavigation">
    <option value="1" <?php echo isset($site['displayNavigation']) && $site['displayNavigation'] == 1 ? 'selected' : ''; ?>>Yes</option>
    <option value="0" <?php echo isset($site['displayNavigation']) && $site['displayNavigation'] == 0 ? 'selected' : ''; ?>>No</option>
</select>
0 голосов
/ 29 июня 2018

Попробуйте с приведенным ниже кодом, если это поможет вам

<select class="form-control" name="displayNavigation" id="displayNavigation">   
    <option value="1" @if(isset($site['displayNavigation']) and $site['displayNavigation'] == 1) selected @endif>Yes</option>
    <option value="0" @if(isset($site['displayNavigation']) and $site['displayNavigation'] == 0) selected @endif>No</option>    
</select>
0 голосов
/ 29 июня 2018

Вы можете просто использовать условие @if внутри <option> и установить атрибут selected

<select class="form-control" name="displayNavigation" id="displayNavigation">
        <option value="1" @if($site['displayNavigation'] == 1) selected @endif>Yes</option>
        <option value="0" @if($site['displayNavigation'] == 0) selected @endif>No</option>
    @endif
</select>
0 голосов
/ 29 июня 2018

Ваше утверждение if-else необходимо изменить. Этот код решит вашу проблему.

<select class="form-control" name="displayNavigation" id="displayNavigation">
    <option value="1" <?php if(isset($site['displayNavigation']) and $site['displayNavigation'] == 1){?>selected<?php } ?>>Yes</option>
    <option value="0" <?php if(isset($site['displayNavigation']) and $site['displayNavigation'] == 0){?>selected<?php } ?>>No</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...