PHP下拉选项"选择"

时间:2014-10-30 16:49:21

标签: php selecteditem

我正在编写一个网页,该网页使用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>

目前,如果我的$valuelanguage de ,则菜单应更改为&#34; Deutsch&#34;作为选择的选项,但它保持在&#34;英语&#34;。我哪里错了?

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我已将此功能从if if else更改为case开关,无论刷新如何,该功能都完美无缺。这是代码:

<?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不起作用。

答案 2 :(得分:0)

使用这样的东西并告诉我它是否有效

<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>                     

答案 3 :(得分:0)

   <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