如何从数组中默认设置多个选择选项


How to set multiple select options by default from array

我试图从数组的数据库中检索选项/值,我想将这些选项/值设置为默认选择在多个选择列表中,并将它们显示给用户,他们将能够在必要时更新他们的数据。

//data in database
$mytitle = array(
    'Arbitrator',
    'Attorney',
    'Student',
    'Other'
); 
//data for multiple select
$title = array(
    'Judge' ,
    'Magistrate' ,
    'Attorney' ,
    'Arbitrator',
    'Title Examiner' ,
    'Law Clerk','Paralegal' ,
    'Intern' ,
    'Legal Assistant',
    'Judicial Assistant',
    'Law Librarian' ,
    'Law Educator' ,
    'Attorney',
    'Student',
    'Other'
);
echo "<select name='title[]' multiple='multiple'>";
$test = implode(',', $mytitle);
for ($i=0; $i<=14; $i++) {
    if($test == $title[$i]) {
        echo "<option selected value='$title[$i]'>$title[$i]</option>";
    }
    else {
        echo "<option value='$title[$i]'>$title[$i]</option>";
    }
}
echo "</select>"; 

我想你可能有逻辑错误。试试下面这个循环:

foreach ($title as $opt) {
    $sel = '';
    if (in_array($opt, $mytitle)) {
        $sel = ' selected="selected" ';
    }
    echo '<option ' . $sel . ' value="' . $opt . '">' . $opt . '</option>';
}

使用in_array()函数

for ($i=0; $i<=14; $i++) {
  if(in_array($title[$i], $mytitle)){
    echo "<option selected value='$title[$i]'>$title[$i]</option>";
  }else {
    echo "<option value='$title[$i]'>$title[$i]</option>";
  }
}

在jQuery的帮助下非常简单,其中select具有id test

$('#test option').attr('selected', 'selected');

JSFiddle示例