【问题标题】:PHP Dropdown Option "Selected"PHP 下拉选项“已选择”
【发布时间】:2014-10-30 16:49:21
【问题描述】:

我正在编写一个网页,该网页使用select option 下拉菜单来更改 MySQL 表中的语言。目前只有两种语言选项。我只是想让菜单反映 MySQL 表中的当前值。

我从 MySQL 检索值并将其分配给变量 $valuelanguage。这是我正在使用的 php 代码,它不起作用:

<select id="language" name="language">                      
<?php 
if($valuelanguage=="en")
{
echo '<option selected value="en">English</option>';
echo '<option value="de">Deutsch</option>';
} 
else
{
echo '<option value="en">English</option>';
echo '<option selected value="de">Deutsch</option>';
}
?>
</select>

目前,如果我的$valuelanguagede,则菜单应更改为“Deutsch”作为选定选项,但它会停留在“English”。我哪里错了?

【问题讨论】:

  • 当你给鞋子编码时,如果 $valuelanguage 是 en 那么菜单应该是英语作为选择......不是 Deutsch 你没有做错任何事情......
  • 请注意,当您简单地刷新页面时,大多数浏览器不会更改这些值。在选择的选项发生变化之前,您必须执行强制刷新(例如 shift-F5)才能进行全面刷新。
  • 当然我希望它在 Deutsch 时改变。我的观点是它没有改变。你说得对,我必须使用强制刷新,但这并没有改变。我的字符串比较有错误吗?

标签: php selecteditem


【解决方案1】:

问题不在于您的代码。我在最新版本的 Firefox 上对其进行了测试,但是当我将 $valuelanguage 的值更改为 de 时,刷新 (F5) 不起作用。但是,当我按下CTRL+F5 时,更改就会生效。

我认为这个question 的答案及其提供的链接也很有帮助。

【讨论】:

  • 我用过所有的浏览器,没有任何变化。甚至强制刷新都不起作用。
【解决方案2】:

我已将此功能从 if then else 更改为 case switch,无论刷新如何,它都能完美运行。代码如下:

<?php
$valuelanguage = mysql_query("SELECT value FROM configuration WHERE label='language'");
$lang = mysql_result($valuelanguage, 0);
{
switch ($lang) {
case "en":
echo '<option selected value="en">English</option>';
echo '<option value="de">Deutsch</option>';
break;
case "de":
echo '<option value="en">English</option>';
echo '<option selected value="de">Deutsch</option>';
break;
}
}
                                ?> 

我不知道为什么 If/then 不起作用。

【讨论】:

    【解决方案3】:

    使用类似的东西并告诉我它是否有效

    <select id="language" name="language"> 
    <option value="en" <?php if($valuelanguage=="en"){?> selected<?php }?>>English</option>
    <option value="de" <?php if($valuelanguage=="de"){?> selected<?php }?>>Deutsch</option> 
    </select>                     
    

    【讨论】:

      【解决方案4】:
         <select id="language" name="language"> 
          <option value="en" <?php echo  $valuelanguage=="en"? "selected" :"";?> >English</option>
          <option value="de" <?php echo  $valuelanguage=="de"? "selected" :""; ?>>Deutsch</option> 
       </select> 
      

      试试这个....如果 $valuelanguage!=en 或 de 然后选择英语。所以你应该确定 $valuelanguage==en 或 de

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-17
        • 1970-01-01
        • 2019-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多