自动选择从数据库填充的下拉列表中的值

时间:2013-08-03 20:26:54

标签: php

我有这个代码用于填充数据库中的条目的下拉列表。它工作正常但我想要做的是,如果我从另一个页面发送一个值,它将自动选择该值。这是工作代码:

{ $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)错误。任何帮助将不胜感激,谢谢。

2 个答案:

答案 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";