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

时间:2011-09-25 06:20:16

标签: php html arrays

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

//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>"; 

4 个答案:

答案 0 :(得分:3)

我认为你可能有一个逻辑错误。试试这个循环:

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

答案 1 :(得分:0)

使用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>";
  }
}

答案 2 :(得分:0)

foreach ($title as &$x) 
{
echo "<option ".(in_array($x, $mytitle)?"selected":"")." value='$x'>$x</option>";
}

答案 3 :(得分:0)

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

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

JSFiddle Example