2014-10-30 4 views
-1

Я программирую веб-страницу, которая использует выпадающее меню select option, чтобы изменить язык в таблице MySQL. В настоящее время существует только два варианта языка. Я просто хочу, чтобы меню отображало текущее значение из таблицы MySQL.PHP Dropdown Option «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 является де то меню должно измениться на «Deutsch» в выбранной опции, но вместо того, чтобы его остается на «английском». Где я иду не так?

+0

как вы кодируете обувь, если $ valuelanguage en, тогда меню должно быть английским как выбранное ... не Deutsch, вы не делаете ничего плохого ... –

+2

note что большинство браузеров не изменят значения при простом обновлении страницы. вам нужно сделать силовое обновление (например, shift-F5), чтобы выполнить полномасштабное обновление до выбора опции select. –

+0

Конечно, я хочу, чтобы это изменилось, когда это Deutsch. Я хотел сказать, что он не меняется. Вы правы, что я должен использовать обновление силы, но ничего не меняет. Есть ли ошибка в сравнении строк? – RootWannaBe

ответ

1

Проблема не в вашем коде. Я тестировал его в последней версии Firefox, но обновление (F5) не работает, когда я меняю значение $valuelanguage на de. Однако, когда я нажимаю CTRL+F5, изменение вступает в силу.

Я думаю, что ответ на этот вопрос question, со ссылками, которые он предоставляет, тоже полезен.

+0

Я использовал каждый браузер и есть никаких изменений. Даже не обремененное обновление не работает. – RootWannaBe

0

Я изменил эту функцию с помощью if, а затем на случайный переключатель, который отлично работает независимо от обновления. Вот код:

<?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 не будет работать.

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! = Еп или отмените затем выберите английский. поэтому вы должны быть уверены, что $ valuelanguage == en или de