2014-10-30 122 views
-1

我正在編程一個網頁,該網頁使用select option下拉菜單來更改MySQL表中的語言。目前只有兩種語言選項。我只是想讓菜單反映MySQL表中的當前值。PHP下拉選項「Selected」

我從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然後選擇菜單應更改爲「德語」作爲選擇的選項,而是它停留在「英語」。我哪裏錯了?

+0

作爲你的代碼鞋,如果$ valuelanguage是en,那麼菜單應該是英文的選擇......不是Deutsch你沒有做錯任何事...... – 2014-10-30 16:51:38

+2

note大多數瀏覽器在您刷新頁面時不會更改這些值。您必須執行強制刷新(例如shift-F5)才能在選擇選項更改之前進行全面的完整刷新。 – 2014-10-30 16:55:30

+0

當然,我希望它改變爲德語。我的觀點是它沒有改變。 YOu是正確的,我必須使用強制刷新,但是什麼都不改變。我的字符串比較有錯誤嗎? – RootWannaBe 2014-10-30 17:28:45

回答

1

問題不在於你的代碼。我在最新版本的Firefox上測試過它,但當我將$valuelanguage的值更改爲de時,刷新(F5)不起作用。但是,當我按CTRL+F5時,更改將生效。

我認爲這個question的答案和它提供的鏈接也有幫助。

+0

我用過的每一個瀏覽器都沒有變化。甚至沒有一個錯誤的刷新工作。 – RootWannaBe 2014-10-31 10:07:59

0

我已經改變了這個功能從一個if then 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; 
} 
} 
           ?> 

我不知道爲什麼如果/然後不會工作。

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>      
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或取消,然後選擇英語。所以你應該確定$ valuelanguage == en或者de