0

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

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

<?php if($dept == 'web') { ?>

    <select class="select" name="dept">
        <option value=“web” selected="selected">Website Orders</option>
        <option value=“phone”&gt;Phone Orders</option>
        <option value=“retail”&gt;Retail Orders</option>
    </select>

<?php } elseif($dept == 'phone') { ?>

    <select class="select" name="dept">
        <option value=“web”&gt;Website Orders</option>
        <option value=“phone” selected="selected">Phone Orders</option>
        <option value=“retail”&gt;Retail Orders</option>
    </select>

<?php } else { ?>

    <select class="select" name="dept">
        <option value=“web”&gt;Website Orders</option>
        <option value=“phone”&gt;Phone Orders</option>
        <option value=“retail” selected="selected">Retail Orders</option>
    </select>

<?php } ?>

有没有办法可以更改此下拉列表的默认设置而无需重复 HTML 三次?我是一个相当新手的 PHP 程序员,所以大部分时间我仍然无法找到更优雅的解决方案。:(

4

2 回答 2

0

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

于 2013-11-13T01:12:37.827 回答
0

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

$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>';
于 2013-11-13T01:21:02.410 回答