我正在编写一个网页,该网页使用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;。我哪里错了?
答案 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