我正在编写一个更改网站语言的功能。如何设置:如果语言选择发生变化,则设置为刷新页面。
如:if(value=="ru"){$_SESSION["lang"]="ru"; Refresh page}
in:
<select class="leng" name="language" id="language" >
<option selected="selected" value="en">en</option>
<option value="ru" >ru</option>
<option value="ae">ae</option>
<option value="bg">bg</option>
</select>
谢谢。
答案 0 :(得分:2)
这是一些不使用表单的老式javascript解决方案:
<select class="leng" name="language" id="language" onChange="document.location.href='your_page.php?lang=' + this.value">
<option selected="selected" value="en">en</option>
<option value="ru">ru</option>
<option value="ae">ae</option>
<option value="bg">bg</option>
</select>
和&#34; your_page.php&#34;:
<?php
session_start();
if(isset($_GET["lang"])) $_SESSION["lang"] = $_GET["lang"];
?>
答案 1 :(得分:1)
假设您在具有name
属性的表单中有这样的内容,例如:
<form name='formname' method='post' action='handlelanguage.php'>
<select class="leng" name="language" id="language" onChange="document.formname.submit()">
然后在那个页面中:
$value = $_POST['language'];
if($value=='ru')
{
$_SESSION["lang"] = "ru";
header('Location: originalpage.php');
exit;
}
答案 2 :(得分:1)
如果您正在设置会话变量,则无需刷新页面,因为在发送标头之前进行处理。您只需将表单发布到要设置会话变量的页面,如下所示:
<form action="/" method="post">
<select class="leng" name="language" id="language" >
<option selected="selected" value="en">en</option>
<option value="ru" >ru</option>
<option value="ae">ae</option>
<option value="bg">bg</option>
</select>
<input type="submit" />
</form>
然后,在那段代码之前,您需要添加一些这样的PHP(确保在任何其他输出之前发生这种情况,否则您将收到PHP错误):
<?php
if (isset($_POST['language'])){
session_start();
$_SESSION['language'] = $_POST['language'];
}
?>
此时,会话变量已从发布到同一页面的表单中保存。你可以采取相应的行动。