我尝试使用数据库中的选定值打印下拉列表。 result3 - 我从数据库中选择与 $ id2 位于同一行的“公司名称”值。我需要选择该值。 result2 - 我选择所有公司名称。
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>
答案 0 :(得分:4)
所选属性应仅应用于列表中的单个选项。
<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>';
}
这样,只会选择您想要选择的值。