使用错误在select标签中选择多个值

时间:2018-03-10 03:43:26

标签: php html

我有一个数组,并选择多个字段我想要做的是每当文件加载所有选择选项将使用数组ID选择。我的数组是

  

数组([0] => 3 [1] => 5 [2] => 9)

我的选择字段是:

<select id="selSkills"  name="selSkills[]" class="selectpicker" multiple>
    <?php 
    $myArray = explode(',',$empInfo[0]['skills']);
    $skillSQL_count = COUNT($skillInfo); 
    for($i=0; $i<$skillSQL_count; $i++) {   ?>
        <option value="<?php echo $skillInfo[$i]['skill_id'];?>" <?php if($skillInfo[$i]['skill_id'] == $myArray[$i]) { echo "selected"; }  ?>><?php echo $skillInfo[$i]['skill_name'];?></option>
    <?php }  ?>
</select>

但不知怎的,我得到一个数组

  

PHP错误已经遇到严重性未定义的偏移量3

任何帮助都将受到高度赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:1)

而不是

if($skillInfo[$i]['skill_id'] == $myArray[$i])

使用

if(in_array($skillInfo[$i]['skill_id'], $myArray))

答案 1 :(得分:0)

你也做过,

<?php
    $myArray = isset($empInfo[0]['skills']) ? explode(',',$empInfo[0]['skills']) : [];
    $select = '<select id="selSkills"  name="selSkills[]" class="selectpicker" multiple>';
    if (!empty($myArray)) {
        foreach ((array)$myArray as $key => $value) {
            $select .= '<option
                                value="'.(isset($skillInfo[$i]['skill_id']) ? $skillInfo[$i]['skill_id'] : 0).'"
                                '.(isset($skillInfo[$i]['skill_id']) && $skillInfo[$i]['skill_id'] == $value ? "selected" : "").'>
                                '.(isset($skillInfo[$i]['skill_name']) ? $skillInfo[$i]['skill_name'] : '')
                       .'</option>';
        }
    } else {
        $select .= '<option value="0">No record found !</option>';
    }
    $select .= '<select>';
    echo $select;
?>