单击图像以使用其他语言(jquery,php和会话)重新加载当前页面

时间:2015-03-04 23:12:34

标签: php jquery session

我需要为我的网页设置一个简单的翻译方法。 为此,我必须单击国家/地区标志以显示国家/地区语言版本。 我有很多页面,所以我想在点击而不是重新加载索引页面时用正确的语言重新加载当前页面。

我对此进行了编码,但它有效,但仅适用于Chrome(???)并且它并不完美,因为我需要点击2次才能显示翻译页面。

我在index.php上的脚本:

<script src="data/jquery/jquery-1.11.2.min.js"></script>        

<script>
    function gotoLang(id){
         $.ajax({
                url: 'langage.php',
                type : 'GET',
                data: 'lang='+id
         });
        document.location.reload(false) // to reload page after edit session['langage']
        }
</script>

我的HTML代码:

<a href="#" onclick="gotoLang('fr')"><img src="flags/France.png"></a>
<a href="#" onclick="gotoLang('it')"><img src="flags/Italy.png"></a>

和langage.php页面,名为:

<?php
session_start();
$_SESSION['langage'] = $lang;
//echo $_SESSION['langage'];
?>

所以这种方式正在运行......但是没有使用firefox?我需要单击2次才能显示正确的文件。 有什么想做的更好吗?

1 个答案:

答案 0 :(得分:0)

您需要提供$.ajax时间才能完成,因为它是异步的。

现在reload()在ajax完成之前发生并将导致ajax的中止

$.ajax({
    url: 'langage.php',
    type: 'GET',
    data: 'lang=' + id
}).done(function (response) {
    /* should validate response here */
    document.location.reload(false);
}).fail(function(){
    alert('Ooops...server problem');
});