PHP引导多选择选项

PHP引导多选择选项,php,mysql,twitter-bootstrap,Php,Mysql,Twitter Bootstrap,在我的代码中,我使用的是PHP,它从MySQL数据库填充引导多selectpicker,但问题是它只选择最后一个选项,而不是多个选项,我不知道它缺少什么?这是我的密码 function MultiBindCombo($tablenames, $columnnames1, $columnnames2, $comboname, $selectedopt) { global $conn; $sql="SELECT ". $columnnames1. ", " . $columnnam

在我的代码中,我使用的是
PHP
,它从
MySQL
数据库填充引导多
selectpicker
,但问题是它只选择最后一个选项,而不是多个选项,我不知道它缺少什么?这是我的密码

function MultiBindCombo($tablenames, $columnnames1, $columnnames2, $comboname, $selectedopt) {
    global $conn; 
    $sql="SELECT ". $columnnames1. ", " . $columnnames2 . " FROM ". $tablenames;
    $result = mysqli_query($conn, $sql);
    if( ! $result ) {
        echo mysql_error();
        exit;
    }
    echo '<select class="selectpicker form-control" data-live-search="true" name="' . $comboname . '" multiple="multiple">';
    $array = explode(',', $selectedopt);
    while ($row=mysqli_fetch_array($result)) {
            foreach ($array as $select_option){
            if($row[$columnnames1] == $select_option) {
                $print_selected = 'selected';
            } else {
                $print_selected = '';
            }
            echo $select_option;
            }
        echo '<option data-tokens="' . $row[$columnnames1] . '" value="' . $row[$columnnames1] . '"' .$print_selected. '>' . $row[$columnnames2] . '</option>';
    }
    echo '</select>';
}
函数MultiBindCombo($tablenames、$columnnames1、$columnnames2、$comboname、$selectedopt){ 全球$conn; $sql=“从“$tablenames”中选择“$columnnames1.”、“$columnnames2.”; $result=mysqli\u查询($conn,$sql); 如果(!$result){ echo mysql_error(); 出口 } 回声'; $array=explode(“,”,$selectedopt); while($row=mysqli\u fetch\u数组($result)){ foreach($array as$select\u选项){ if($row[$columnnames1]=$select\u选项){ $print_selected='selected'; }否则{ $print_selected=''; } echo$select_选项; } 回显'.$row[$columnnames2].'; } 回声'; }
要在多重选择中获取所有选定值,您需要将
名称
属性与
[]
一起使用:

echo '<select class="selectpicker form-control" data-live-search="true" name="' . $comboname . '[]" multiple="multiple">';
将其改写为:

while ($row=mysqli_fetch_array($result)) {
    $print_selected = ''; 
    foreach ($array as $select_option){
        if($row[$columnnames1] == $select_option) {
            $print_selected = 'selected';

            // break `foreach` as you found the right item
            break;
        }
    }
    // if right item is not found - `$print_selected` is empty

    echo '<option data-tokens="' . $row[$columnnames1] . '" value="' . $row[$columnnames1] . '"' .$print_selected. '>' . $row[$columnnames2] . '</option>';
}
while($row=mysqli\u fetch\u数组($result)){
$print_selected='';
foreach($array as$select\u选项){
if($row[$columnnames1]=$select\u选项){
$print_selected='selected';
//找到正确的项目时,将'foreach'打断
打破
}
}
//如果找不到正确的项目-“$print_selected”为空
回显'.$row[$columnnames2].';
}

错误是什么?正如我所说,它只选择最后一个选项,而不是所有选择的值。我已经用
[]设置了一个选择框名称
这不是问题,它会打印我回显的多个值
$selectedopt
,但它只选择了一个选项,而不是多个选项。非常感谢。你能告诉我我做错了什么吗?你没有打破循环。因此,
$print\u selected
值始终是基于
$array
的最后一个元素定义的。噢,我的错误,谢谢您的澄清和帮助
while ($row=mysqli_fetch_array($result)) {
    $print_selected = ''; 
    foreach ($array as $select_option){
        if($row[$columnnames1] == $select_option) {
            $print_selected = 'selected';

            // break `foreach` as you found the right item
            break;
        }
    }
    // if right item is not found - `$print_selected` is empty

    echo '<option data-tokens="' . $row[$columnnames1] . '" value="' . $row[$columnnames1] . '"' .$print_selected. '>' . $row[$columnnames2] . '</option>';
}