我有以下代码来生成包含数据库值的多选框。有问题的页面是用于修改先前输入的信息的表单。在生成框之前检索“$ 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;
答案 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':'')
那就做到了。