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

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

问题描述:

I have this code for populating a dropdown with entries from a database. It work fine but what I want to do is, if I send a value to it from another page, it will automatically select that value. Here’s the working code:

{ $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;

A method for doing this with static dropdown is:

<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>

I added:

$test = 'James Whitley';

And tried replacing:

$FullName .= '<option value="'.$v['FullName'].'">'.$v['FullName'].'</option>';}}

With:

$FullName .= '<option value="'.$v['FullName'].'"' if('.$v['FullName'].' = $test){echo 'selected="selected"';} '>'.$v['FullName'].'</option>';}}

Which I thought would work but I get a (syntax error, unexpected T_IF) error. Any help would be appreciated, thanks.

Try this:

$FullName .= '<option value="'.$v['FullName'].'"'.
 (!strcmp($v['FullName'],$test)?' selected':'').'>'.$v['FullName'].'</option>';

If you are doing a select,options variably from a result set or keyed array, you could have something like this:

  echo "<select name=\"users\">
";
  foreach ($usernames as $fullname)
  {
    $seltxt=(!strcmp($fullname,$test)?' selected':'');
    echo "<option value=\"${fullname}\"${seltxt}>${fullname}</option>
";
  }
  echo "</select>
";

Here what it should look like, don't use concatenation in if-statement:

$FullName .= '<option value="' . $v['FullName'] . '"' . ($v['FullName'] == $test? ' selected="selected' : '') . '>' . $v['FullName'] . '</option>';