我正在使用此代码在我的网站中切换语言。一切正常,但是当我改变语言总是第一项被选中。我想保持选择哪种语言是网站语言。这是我的代码。
<td width="85%" align=right class=top_section>
<form method='POST'>
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected';?>English</option>
<option value="ru" <?php if($_POST['switchlanguage'] == 'ru') echo 'selected';?>Русский</option>
<option value="tj" <?php if($_POST['switchlanguage'] == 'tj') echo 'selected';?>Точики</option>
</select>
</form>
</td>
如何让它正常工作?如果选择俄语,它应该保留俄语。但它总是用英语。
使用此代码更改网站语言
if(!isset($_POST['switchlanguage']))
{
include_once($DOCUMENT_LANG.'en.lng.php');
}
else
{
include_once($DOCUMENT_LANG.$_POST['switchlanguage'].'.lng.php');
}
即使我使用标签进入下拉框并使用向下键,它也会自动转到第一项。
答案 0 :(得分:1)
我发现了什么问题。我不知道为了聪明我们需要&lt; {php}&gt;和&lt; {/ php}&gt;标签。 因此,smarty并不知道写作。我最后写了这段代码,但它确实有效。
<form method='POST'>
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <{php}>if($_POST['switchlanguage'] == 'en') echo 'selected="selected"';<{/php}>> English</option>
<option value="ru" <{php}>if($_POST['switchlanguage'] == 'ru') echo 'selected="selected"';<{/php}>> Русский</option>
<option value="tj" <{php}>if($_POST['switchlanguage'] == 'tj') echo 'selected="selected"';<{/php}>> То?ик?</option>
</select>
感谢所有帮助过我的人。
答案 1 :(得分:0)
答案 2 :(得分:0)
你应该使用
selected="selected"
不是PHP程序员,但可以尝试
<td width="85%" align=right class=top_section>
<form method='POST'>
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected="selected"';?>English</option>
<option value="ru" <?php if($_POST['switchlanguage'] == 'ru') echo 'selected="selected"';?>Русский</option>
<option value="tj" <?php if($_POST['switchlanguage'] == 'tj') echo 'selected="selected"';?>Точики</option>
</select>
</form>
</td>
嘿,试试
<form method='POST'>
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected="selected"';?>> English</option>
<option value="ru" <?php if($_POST['switchlanguage'] == 'ru') echo 'selected="selected"';?>> Русский</option>
<option value="tj" <?php if($_POST['switchlanguage'] == 'tj') echo 'selected="selected"';?>> Точики</option>
</select>
</form>
答案 3 :(得分:0)
您的代码中有一些拼写错误。 见这个
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected';?>English</option>
这应该是
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected'; ?>>English</option>
注意选项开始标记的结束括号(在英语和其他语言之前)。
您可以用以下代码替换您的选择代码:
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected'; ?>>English</option>
<option value="ru" <?php if($_POST['switchlanguage'] == 'ru') echo 'selected'; ?>>Русский</option>
<option value="tj" <?php if($_POST['switchlanguage'] == 'tj') echo 'selected'; ?>>Точики</option>
</select>
修改强>
您的编辑代码是否如此,
<?php
$_POST['switchlanguage'] ='ru';
?>
<table>
<tr>
<td width="85%" align=right class=top_section>
<form method='POST'>
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <?php if($_POST['switchlanguage'] == 'en') echo 'selected'; ?>>English</option>
<option value="ru" <?php if($_POST['switchlanguage'] == 'ru') echo 'selected'; ?>>Русский</option>
<option value="tj" <?php if($_POST['switchlanguage'] == 'tj') echo 'selected'; ?>>Точики</option>
</select>
</form>
</td>
</tr>
</table>
我已经测试了这个并且工作正常。
答案 4 :(得分:0)
对于您的问题,您可以使用以下一项或多项:
在上述任何一种情况下,您都需要制作一个脚本,在Cookie,Session或DB中设置lang val,然后重定向回原始页面。或者更好地对存储val的PHP脚本进行Ajax调用,然后返回值设置或错误的JSON对象。
最后,您需要调整HTML以选择正确的语言(例如,使用Cookie):
<select name="switchlanguage" onchange="this.form.submit()">
<option value="en" <?php if(!isset($_COOKIE['switchlanguage']) || empty($_COOKIE['switchlanguage']) || $_COOKIE['switchlanguage'] == 'en') echo 'selected';?>English</option>
<option value="ru" <?php if($_COOKIE['switchlanguage'] == 'ru') echo 'selected';?>Русский</option>
<option value="tj" <?php if($_COOKIE['switchlanguage'] == 'tj') echo 'selected';?>Точики</option>
</select>
我还添加了缺少的默认案例: (!isset($ _ COOKIE [&#39; switchlanguage&#39;])|| empty($ _ COOKIE [&#39; switchlanguage&#39;])) 如果还没有选择郎,请选择英语。
答案 5 :(得分:0)
是这个帖子结果
<?php if($_POST['switchlanguage'] == 'en') echo 'selected="selected"';?. ?>
来自其他一些页面,或者你是否正在改变这个页面本身的语言。如果它是通过一个帖子请求来自其他页面,那么它可以,但如果你在这个页面本身改变你的语言,使用javascript来获取特定的选择的字段。
答案 6 :(得分:0)
由于我找不到更好的解决方案,我做了一个小技巧......我又增加了一个选项。它将永远是第一选择。第一个选项是选择语言。如果有人找到另一种方法,我会很高兴。目前我找不到更好的解决方案。
<td width="85%" align=right class=top_section>
<form method='POST'>
<select name="switchlanguage" onchange="this.form.submit()">
<option > Choose language</option>
<option value="en" > English</option>
<option value="ru" > Русский</option>
<option value="tj" > Точики</option>
</select>
</form>
</td>
我知道这不好,但总比没有好。 我不接受这个答案,因为它没有解决我的问题。