从动态选项列表中使用 Selected=“Selected”


Using Selected="Selected" from dynamic list of options

我正在将表单中的变量发布到另一个表单(搜索记录表单)上,这将包含发布到当前表单的所有变量,并放置在INPUT字段或SELECT字段中。任何INPUT类型 I 的字段都可以使用 INPUTValue="" 部分POST。现在SELECT我有一个小问题,我在代码中预填充的任何小列表都可以,我在下面使用了这段代码

<label>Fuel</label>
<select tabindex="1" id="propertyfueltype" name="propertyfueltype">
<option value=""></option>
<option value="1" <?php echo ($searchfuel == '1' ? 'selected' : '')?>>Mains gas</option>
<option value="2" <?php echo ($searchfuel == '2' ? 'selected' : '')?>>Wood or coal fire</option>
<option value="3" <?php echo ($searchfuel == '3' ? 'selected' : '')?>>Oil</option>
<option value="4" <?php echo ($searchfuel == '4' ? 'selected' : '')?>>Electric storage heaters</option>
<option value="5" <?php echo ($searchfuel == '5' ? 'selected' : '')?>>LPG or bottled gas</option>
<option value="6" <?php echo ($searchfuel == '6' ? 'selected' : '')?>>No central heating system</option>
</select>

正如我在运行 Sear 记录表单并返回已发布的变量时所说,这很好用。我的问题是来自数据库SELECT中的大数据集,这就是我目前拥有的,非常适合将数据放入SELECT但是我如何以类似于以前的代码的方式将变量发布到它?

<label>Fuel Type</label> 
<?php $fueltype = db::getInstance()->query('SELECT * FROM lkup_fueltype'); 
if(!$fueltype->count()) { echo 'Problem'; } else { ?> 
<select tabindex="1" id="propertyfueltype" name="propertyfueltype"> 
<?php foreach ($fueltype->results() as $fueltype) { ?> 
<option value="<?php echo $fueltype->PropertyFuelType; ?>"><?php echo $fueltype->PropertyFuelType; ?></option> 
<?php } } ?> 
</select>

像这样:

<option
    value="<?php echo $fueltype->PropertyFuelType; ?>"
    <?php echo $fueltype->PropertyFuelType == $searchfuel ? "selected" : ""; ?>
><?php echo $fueltype->PropertyFuelType; ?></option>

话虽如此,我建议使用PHP模板系统;或者至少将此逻辑转换为函数。