我有这个代码用于填充数据库中的条目的下拉列表。它工作正常但我想要做的是,如果我从另一个页面发送一个值,它将自动选择该值。这是工作代码:
{ $box1 = array();
$result1 = "SELECT FullName FROM UserInformation ORDER BY FullName ASC";
$rs1=odbc_exec($conn,$result1);
while($row = odbc_fetch_array($rs1)) { $box1[] = $row; }}
$FullName = '<select name="FullName" onchange="autoSubmit(); refresh()">';
$FullName .= '<option>---< Select Engineer >---</option>';
if (!empty($box1)) {
foreach ($box1 as $k => $v) {
$FullName .= '<option value="'.$v['FullName'].'">'.$v['FullName'].'</option>';}}
$FullName .= '</select>';
echo $FullName;
使用静态下拉列表执行此操作的方法是:
<select name="Active">
<option value="Yes" <?php if($Active == 'Yes') {echo 'selected=""';} ?>>Yes</option>
<option value="No" <?php if($Active == 'No') {echo 'selected=""';} ?>>No</option>
</select>
我补充说:
$test = 'James Whitley';
尝试更换:
$FullName .= '<option value="'.$v['FullName'].'">'.$v['FullName'].'</option>';}}
使用:
$FullName .= '<option value="'.$v['FullName'].'"' if('.$v['FullName'].' = $test){echo 'selected="selected"';} '>'.$v['FullName'].'</option>';}}
我认为哪个会起作用,但我得到(语法错误,意外的T_IF)错误。任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
这里应该是什么样的,不要在 if-statement 中使用连接:
$FullName .= '<option value="' . $v['FullName'] . '"' . ($v['FullName'] == $test? ' selected="selected' : '') . '>' . $v['FullName'] . '</option>';
答案 1 :(得分:0)
试试这个:
$FullName .= '<option value="'.$v['FullName'].'"'.
(!strcmp($v['FullName'],$test)?' selected':'').'>'.$v['FullName'].'</option>';
如果您正在从结果集或键控数组中进行选择,选项可变,您可以这样:
echo "<select name=\"users\">\n";
foreach ($usernames as $fullname)
{
$seltxt=(!strcmp($fullname,$test)?' selected':'');
echo "<option value=\"${fullname}\"${seltxt}>${fullname}</option>\n";
}
echo "</select>\n";