2013-08-03 5 views
-1

У меня есть этот код для заполнения выпадающего списка с помощью записей из базы данных. Он работает нормально, но я хочу, чтобы, если я отправлю ему значение с другой страницы, он автоматически выберет это значение. Вот рабочий код:Автоматический выбор значения в выпадающем списке, заполненном из базы данных

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

Попробуйте это:

$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"; 
0

Вот то, что она должна выглядеть, не использовать конкатенацию в Условный оператор:

$FullName .= '<option value="' . $v['FullName'] . '"' . ($v['FullName'] == $test? ' selected="selected' : '') . '>' . $v['FullName'] . '</option>'; 
Смежные вопросы

 Смежные вопросы