#php #mysql #html #forms #select
#php #mysql #HTML #формы #выберите
Вопрос:
Я пытаюсь распечатать выпадающий список с выбранным значением из базы данных. результат 3 — я выбираю значение ‘название компании’ из базы данных, которые находятся в той же строке, что и $ id2. Мне нужно, чтобы это значение было выбрано. результат 2 — я выбираю названия всех компаний.
result3 = mysql_query("SELECT company.company_id,customer.company_id, customer.customer_id, company.name
FROM company INNER JOIN customer ON customer.company_id=company.company_id WHERE customer_id='$id2'") or die(mysql_error());
$row3 = mysql_fetch_assoc($result3);
$result2 = mysql_query("SELECT company_id, name FROM company") or die(mysql_error());
if(mysql_num_rows($result2) > 0)
{
while($row2 = mysql_fetch_assoc($result2))
{
echo'<option selected="'.$row3['name'].'" value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
}
}
Проблема с моим кодом заключается в том, что каждый раз выбранное значение является последним в списке.
Я посмотрел на свой исходный код, и там все в порядке.
Вот исходный код, и именно таким мне и нужно было быть. (но мой код возвращает выбранное значение как Facebook — последнее в списке)
<select name="operation">
<option selected="Google" value="1">Microsoft</option>
<option selected="Google" value="2">IBM</option>
<option selected="Google" value="3">Google</option>
<option selected="Google" value="4">Lexy</option>
<option selected="Google" value="5">Facebook</option>
</select>
Ответ №1:
Выбранный атрибут должен применяться только к одному параметру в списке.
<option selected="selected">
должно привести к выбору этого единственного параметра.
Итак, в вашем цикле while вам нужен оператор if, что-то вроде этого:
while($row2 = mysql_fetch_assoc($result2))
{
if($row2['name'] == $row3['name']){
$selected = "selected='selected'";
}else{
$selected = "";
}
echo'<option ' . $selected . ' value="'.$row2['company_id'].'">'.$row2['name'].'</option>';
}
Таким образом, будет выбрано только то значение, которое вы хотите выбрать.