我没有解决方案。也许比我更聪明的人可以提供一些帮助。这涉及MySQL表并以表格形式显示检索到的数据。
目标是以表格形式显示当前存储在特定数据行中的内容。
我使用相同的表单插入和显示数据以进行修改。我使用以下代码生成了下拉选项,这可以正常工作。
<div class="form-group">
<label for="pistol_model_brand">Pistol Model Brand</label>
<select name="pistol_model_brand" class="form-control">
<option value="">Select one</option>
<?php foreach($brands as $key => $brand): ?>
<option value="<?php htmlout($key) ?>"><?php htmlout($brand); ?</option>
<?php endforeach; ?>
</select>
</div>
为了显示当前存储的数据,我使用value =“content here”将其回显到表单中。
由于我的下拉选项实际上并未列出,因此我不知道如何检索存储在数据库表中的值并将其显示在表单中。
我通常这样做:
<div class="form-group">
<label>Waist</label>
<select class="form-control" name="waist">
<option value="">Select one</option>
<option value="iwb" <?php if($item['waist'] === 'iwb') {echo htmlspecialchars(' selected');} ?>>IWB</option>
<option value="owb" <?php if($item['waist'] === 'owb' || 'OWB') {echo htmlspecialchars(' selected');} ?>>OWB</option>
</select>
</div>
但是,在这种情况下,我不知道该怎么做,或者我有什么选择。
感谢您的考虑!
答案 0 :(得分:0)
注意:此答案基于您使用$item
变量的假设,即您拥有该变量中可用的数据库行,并且它包含存储在该变量中的品牌该行的数据库。
这通常是我在不使用模板引擎时使用的方法(如Laravel Blade或Twig):
<select name="pistol_model_brand" class="form-control">
<option value="">Select one</select>
<?php foreach($brands as $key => $brand) : ?>
<?php $selected = ($key == $item['brand'] ? 'selected' : '') ?>
<option value="<?php echo($key); ?>" <?php echo($selected); ?>>
<?php echo($brand); ?>
</option>
<?php endforeach; ?>
</select>
我使用的方法是使用三元运算符在选项之前填充$selected
变量并输出selected
或不输出任何内容。它虽然很丑陋!
使用像Laravel Blade之类的东西,它看起来有点清晰:
<select name="pistol_model_brand" class="form-control">
<option value="">Select one</select>
@foreach($brands as $key => $brand)
<option value="{{ $key }}" {{ $item['brand'] ? 'selected' : '' }}>
{{ $brand }}
</option>
@endforeach
</select>
编辑:添加更多详细信息......
$selected = ($key == $item['brand'] ? 'selected' : '');
该语法称为三元运算符。它的格式为condition ? valueA : valueB
,其中 condition 返回真值或假值。如果它是真的,它将返回 valueA ,如果它是假的,它将返回 valueB 。这意味着$selected
的值将是字符串&#34;选择&#34;或空字符串,具体取决于$key == $item['brand']
是返回true还是false。