2010-10-02 114 views
0

你好 我有工作不爽,不过不是选择empyt选定值“选择地址”它总是显示在下拉列表中,而不是空选定值中的最后一项下拉。我从另一个来源的代码中获得了帮助,但似乎已经迷失了方向。我哪里错了?非常感谢选择初始空值

PS。对布局抱歉,但这是按下代码按钮后的布局。

> $address_result = mysql_query("SELECT 
    > * FROM company_com ORDER BY address1_com ASC"); $dropdown = 
    > "<select name='address'>"; $dropdown 
    > .= "<option SELECTED value=\"\">Select 
    > an Address</option>"; 
while($row = mysql_fetch_assoc($address_result)) { 
     $address = $row["address1_com"].$row["address2_com"].$row["address3_com"]; 

        $dropdown .= "<option SELECTED value='".$row['address']."'>$address</option>"; 

} 
$dropdown .= "</select>"; 

回答

0

删除SELECTED来自:

$dropdown .= "<option SELECTED ..... 
1

这个循环将所有的option标签的selected属性。查看您的来源以进行验证。浏览器默认显示上次选择的内容。这就是为什么选择循环中的最后一个。

你需要做的PHP中的检查测试,如果电流输出为选定的地址,然后才设置selected属性。如果没有人获得该属性,浏览器将默认为第一个选项 - 在您的情况下是默认值。

您还应该输出这个属性为selected="selected"进行适当的HTML标准。

+0

'自身selected'是完全有效的'HTML 4.01 Strict',只有'XHTML'需要'选择= “选择”' – Wrikken 2010-10-02 14:43:14

+0

好澄清。自从我写了HTML 4以来,这段时间已经很长时间了。我仍然建议'selected =“选择”'作为*最佳做法*。 – 2010-10-02 15:25:03

+0

最佳做法是知道你正在使用的HTML,需要例如自动关闭的标签在XHTML,但在HTML非法... – Wrikken 2010-10-02 15:48:33

0
<? 
$address_result = mysql_query("SELECT * FROM company_com ORDER BY address1_com ASC"); 
$dropdown ="<select name='address'>"; 
$dropdown.= "<option SELECTED value=\"\">Select an Address</option>"; 
while($row = mysql_fetch_assoc($address_result)) { 
    $address = $row["address1_com"].$row["address2_com"].$row["address3_com"]; 
    $dropdown .= "<option value='".$row['address']."'>$address</option>"; 
} 
$dropdown .= "</select>"; 
?> 

完成

+0

感谢ollie。简单的呃:-)一拉斯的东西。因为有些生意人相当长,有没有办法来限制下拉宽度的大小?谢谢 – 2010-10-02 14:46:05

+0

好的。用CSS做了。谢谢 – 2010-10-02 23:00:28