如何使用不同的 PHP 变量默认为不同的下拉选项


How to default to different drop down options using different PHP variables

我试图让我们的销售人员更容易使用我们的订单面板。如果在我的$dept变量中检测到某个值,我希望将下拉列表("销售部门")默认为正确的部门。

问题是,我觉得必须有比这样做更好的方法来解决这个问题:

<?php if($dept == 'web') { ?>
    <select class="select" name="dept">
        <option value=“web” selected="selected">Website Orders</option>
        <option value=“phone”>Phone Orders</option>
        <option value=“retail”>Retail Orders</option>
    </select>
<?php } elseif($dept == 'phone') { ?>
    <select class="select" name="dept">
        <option value=“web”>Website Orders</option>
        <option value=“phone” selected="selected">Phone Orders</option>
        <option value=“retail”>Retail Orders</option>
    </select>
<?php } else { ?>
    <select class="select" name="dept">
        <option value=“web”>Website Orders</option>
        <option value=“phone”>Phone Orders</option>
        <option value=“retail” selected="selected">Retail Orders</option>
    </select>
<?php } ?>

有没有办法在不重复 HTML 三次的情况下更改此下拉列表的默认设置?我是一个新手PHP程序员,所以大多数时候我仍然无法找到更优雅的解决方案。:(

您可以做这样的事情,只需对其进行调整以适应您的 Web 模板并将正确的数据拉入前两行的设置变量中......

$depts = array('web' => 'Website Orders', 'phone' => 'Phone Orders', 'retail' => 'Retail     Orders');
$dept = 'phone';
echo '<select class="select" name="dept">';
foreach ($depts as $deptKey => $deptName) {
    $line = '<option value="' . $deptKey . '"';
    $line .= ($dept == $deptKey) ? ' selected="selected">' : '>';
    $line .= $deptName . '</option>';
    echo $line . "'n"; 
}
echo '</select>';

这看起来是一种有效的方法。我的意思是你可能会更"漂亮",但如果它有效,为什么要改变它?我能想到的唯一另一种方法是,如果您使用的是框架,则可以将变量传入模板以决定要使用的下拉列表。