默认情况下选择php生成选项

默认情况下选择php生成选项,php,forms,option,selected,Php,Forms,Option,Selected,我可能又对自己的错误视而不见了,但为什么2011年不成为默认的选择年呢?-用于调试,它们显示if语句工作正常 for($year=1900;$year<=2050;$year++) { if ($year==date("Y")) echo "<option value='".$year."' selected='selected'>--".$year."</option>"; else echo "<option value='".$year.

我可能又对自己的错误视而不见了,但为什么2011年不成为默认的选择年呢?-用于调试,它们显示if语句工作正常

for($year=1900;$year<=2050;$year++) {
 if ($year==date("Y"))
   echo "<option value='".$year."' selected='selected'>--".$year."</option>";
 else
   echo "<option value='".$year."'>".$year."</option>";
}
所选的class='selected'应该可以正常工作。所以这要么是一个愚蠢的错误,我真的看不出php有什么影响

更新:
发现了问题。。ftp没有正确覆盖文件。现在它起作用了。谢谢你的快速帮助,当这些事情发生时,我总是开始怀疑自己的理智。无法将此作为答案发送,因为我的rep值较低,PHP对浏览器行为没有影响,因此如果它不起作用,则在HTML输出中是一个愚蠢的错误

最好的办法是检查所选变量是否实际输出。可能是比较结果为false,所以它总是第二行。稍微调试一下,就可以快速指出问题所在。检查浏览器中的输出或var_转储$year和date'Y'的值,查看它们是否返回您期望的值


乍一看,我看这里没有错。您是否有可能影响选择的Javascript?

是否检查生成的HTML?也许这段代码看起来运行得很好,但问题出在select中,或者在其他地方。

CTRL+SHIFT+R(如果您使用firefox)。 我也经常遇到这个问题。。 它应该只是缓存


顺便说一句:你应该对html属性使用双引号。那更常见

它在这里工作。。。包含select标记的结果HTML是什么?对于较小的范围:P那么selected='selected'是否会出现在呈现的HTML中?我认为正确的选项是selected而不是selected='selected',但如果您使用Firefox并进行软刷新(例如,浏览器可能会记住您以前选择的值,并在忽略selected=selected时保留该值。若要解决此功能,请使用“硬刷新+选定=选定”来解决此问题。请从您的浏览器复制生成的HTML输出并粘贴到此处。