如何根据条件制作下拉列表单select或多select?

Based on a condition, how to make a dropdown list single select or multiselect?

我有一个要求,在给出的员工列表下拉列表中, 如果 selectMultiple 被设置,下拉菜单应该允许多个 selects,如果 selectMultiple 没有被设置,它不应该。

<select name="employeeList[]" id="employeeList" class="form-
control" multiple="<?=$selectMultiple?>">
    <?php
    foreach($employeeList as $employee) {

        echo "<option value='" . $employee->$employeeId . "'>" . 
        $employee->employeeName . "</option>";

    }    
    ?>
</select>

这是一个 phtml 文件,$selectMultiple 是从控制器(如在 Phalcon 中)传递的。我试过类似传递 $selectMultiple ="multiple" 的方法,所以代码看起来像

<select name="employeeList[]" id="employeeList" class="form-control" multiple="multiple">

$selectMultiple="" 对于单个 select 案例。

<select name="employeeList[]" id="employeeList" class="form-control" multiple="">

但是 multiple 属性本身的存在使得下拉列表符合 multiselect.

简而言之,无论哪种情况,它都会触发 multiselect 而不管条件如何。请帮忙。

您可以像这样简单地编写代码

You need to pass $selectMultiple = "multiple" or $selectMultiple = ''

<select name="employeeList[]" id="employeeList" class="form-control" <? echo !empty($selectMultiple) ? $selectMultiple : '' ?>>
<?php
foreach($employeeList as $employee) {

    echo "<option value='" . $employee->$employeeId . "'>" . 
    $employee->employeeName . "</option>";

}    
?>

我尝试引入一个新变量 "chooseId" 来摆脱 multiple 属性,因此成功了! 将 select 标签修改为

<select name="employeeList[]" id="employeeList" class="form-control"
<?php if ($chooseId== 1) { ?> multiple="multiple" <?php } ?>>
<?php
  foreach($employeeList as $employee) {

    echo "<option value='" . $employee->$employeeId . "'>" . 
    $employee->employeeName . "</option>";

}    
?>
</select>

现在代码可以识别multiple属性,仅当chooseId为1时启用multiselect,否则single select正常工作。