2013-12-09 6 views
0

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

$data = $con->prepare("SELECT ID, Code FROM Table WHERE Code = :value ORDER BY Code"); 
$input = array('value'=>'value'); //'value' is hardcoded, not a variable 
$data->execute($input); 

А вот код для моих раскрывающихся:

<?php 
echo "<select name=\"proj1[]\">"; 
while($row = $data->fetch(PDO::FETCH_BOTH)) 
{ 
    echo "<option value='".$row['Code']."'>".$row['Code']."</option> "; 
} 
echo "</select>"; 
?> 

Это прекрасно работает для одного раскрывающегося списка. Если я попытаюсь создать еще один (proj2 [], proj3 [], proj4 []) и применить тот же запрос, однако, страница PHP перестает загружаться в этот момент, а второй раскрывающийся список не заполняется. Единственный способ, которым я нашел это, - скопировать запрос и изменить переменные ($ data становится $ data2 для proj2 [] и т. Д.). Я бы предпочел не писать один и тот же запрос четыре раза. Есть ли способ обойти это?

ответ

2
$select = ''; 

while($row = $data->fetch(PDO::FETCH_BOTH)) 
{ 
    $select .= "<option value='".$row['Code']."'>".$row['Code']."</option> "; 
} 

echo "<select name=\"proj1[]\">"; 
echo $select; 
echo "</select>"; 

echo "<select name=\"proj2[]\">"; 
echo $select; 
echo "</select>"; 

//etc... 
+0

Отлично. Благодарю. Теперь, когда я загружаю сохраненную запись, как я могу представить раскрывающееся значение, которое выбрал пользователь? – Chris

+0

Это другой вопрос и непонятно. – AbraCadaver

0

Почему бы не просто поместить все это в достоверное, а затем использовать его 4 раза? Что-то вроде этого:

<?php 
while($row = $data->fetch(PDO::FETCH_BOTH)) 
{ 
    $options .= "<option value='".$row['Code']."'>".$row['Code']."</option> "; 
} 
for($i = 0; $i <= 4; $i++){ 
echo "<select name=\"proj1[]\">"; 
echo $options; 
echo "</select>"; 
} 
?> 
Смежные вопросы