从数据库中选择内爆值,然后在下拉框中选择它们

时间:2013-12-25 20:15:25

标签: php

我有以下代码来生成包含数据库值的多选框。有问题的页面是用于修改先前输入的信息的表单。在生成框之前检索“$ Interviewers0”的值。如果“$ Interviewers0”的值是“John Doe”,则选择该名称。但是,如果我有“John Doe,Jane Doe”的值,则不会选择任何名称。我知道这是因为内在的价值,但我无法弄明白。提前谢谢!

{
$box1 = array();
 $result = "SELECT FullName FROM UserInformation";
  $rs=odbc_exec($conn,$result);
while($row = odbc_fetch_array($rs)) { $box1[] = $row; }
}
 $Interviewers = '<select name="Interviewers[]" multiple="multiple" size="5">';
  $Interviewers .= '<option>---< Select Interviewers >---</option>';
if (!empty($box1)) {foreach ($box1 as $k => $v)
 {if(!empty($Interviewers0)){$Interviewers .= '<option value="'.$v['FullName'].'"'. (!strcmp($v['FullName'],$Interviewers0)?' selected':'').'>'.$v['FullName'].'</option>';}
  else
 {$Interviewers .= '<option value="'.$v['FullName'].'">'.$v['FullName'].'</option>';}
}
}
$Interviewers .= '</select>';
echo $Interviewers;

2 个答案:

答案 0 :(得分:1)

您正在寻找的是strpos

所以,请使用:

(strpos($v['FullName'], $Interviewers0) !== false) ? ' selected' : ''

而不是:

!strcmp($v['FullName'],$Interviewers0)?' selected':''

使用(strpos($v['FullName'], $Interviewers0) !== false) ? ' selected' : '',如果在$Interviewers0中找到$v['FullName'],则会选择option

答案 1 :(得分:0)

我替换了

(!strcmp($v['FullName'],$Interviewers0)?' selected':'')

((stripos($Interviewers0, $v['FullName']) !== false) ?' selected':'')

那就做到了。