【发布时间】:2014-06-06 04:35:12
【问题描述】:
有点长的解释。我为访问我网站的人保存了一个数据库名称“访问者”(双语):
id = 1
会话 = fdslup7nsop20ctlkbcf2f7016
国家 = 新加坡
语言 = zh
基于该数据库,我可以使用语言 (en) 作为会话来展示我的英文版网站。
在我的 index.php 中,我使用了这个脚本并且它可以工作:
$locallang=$pages->SelectLocalLanguage(); // pointed to $page class
$_SESSION['mylang'] =$locallang;
if ($_SESSION['mylang']=='en' {
// show in english
}else{
// show in other language
}
在 $page 类中:
public function SelectLocalLanguage() {
$ses_id = session_id();
$query = $this->db->prepare("SELECT * FROM `visitors` WHERE session=? ");
$query->bindValue(1, $ses_id);
try { $query->execute();
$result = $query->fetch();
return $result ['language'];
} catch(PDOException $e){
die($e->getMessage());
}
}
在我的 topheader.php 中,我有几个标志图像代表每种语言(id、en、fr、ru),其中之一是:
<li><a href="#" ><img src="/images/flags/id.png"></a></li>
问题:
通过单击标志图像,我需要:
- 同时更改数据库中的“语言”记录,
- 刷新页面以查看结果。
我用过很多方法,但还是很笨。
<li><a href="#" onClick="ChangeLang('id'); window.location.reload();return false;"><img src="/images/flags/id.png"></a></li>
<script type="text/javascript">
function ChangeLangauge(lg) {
alert("Change Language? Page will be Refresed..!!");
url = "/includes/change-lang.php?newlang=" + lg;
}
</script>
这样还是没有变化..
更改-lang.php:
<?php
$lg=$_GET['newlang'];
$pages->ChangeLang($lg);
?>
在#pages 类中:
public function ChangeLang($lg) {
$ses_id = session_id();
$query = $this->db->prepare("UPDATE `visitors` SET select_lang=? WHERE session=? ");
$query->bindValue(1, $lg);
try {
$query->execute();
} catch(PDOException $e){
die($e->getMessage());
}
}
【问题讨论】:
-
考虑到您到目前为止编写的代码,您至少应该尝试并发布它,解释它的问题
-
结果是页面重新加载和更改数据库后我必须再次刷新才能看到最终结果。
标签: javascript php mysqli