【问题标题】:Best way to set value of selection in php在 php 中设置选择值的最佳方法
【发布时间】:2018-12-08 14:57:33
【问题描述】:
我正在寻找一种很好的方法来根据数据库中的数据使用 php 设置 html 动态的值。目前它看起来像这样:
<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 个选项的选择列表设置值的正确方法。
还有其他方法吗?
【问题讨论】:
标签:
php
html
laravel
laravel-blade
【解决方案1】:
您的 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>
【解决方案2】:
如果对你有帮助,试试下面的代码
<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>
【解决方案3】:
您可以简单地在<option> 中使用@if 条件并设置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>
【解决方案4】:
使用null coalescing operator ?? 的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>