Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击图像以使用其他语言(jquery、php和会话)重新加载当前页面_Php_Jquery_Session - Fatal编程技术网

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

单击图像以使用其他语言(jquery、php和会话)重新加载当前页面,php,jquery,session,Php,Jquery,Session,我需要有一个简单的翻译方法为我的网页。 为此,我必须单击国旗以显示国家语言版本。 我有很多页面,所以我想在单击时用正确的语言重新加载当前页面,而不是重新加载索引页面 我编写了这个,它可以工作,但只在Chrome上???它并不完美,因为我需要点击两下才能显示翻译页面 我在index.php上的脚本: <script src="data/jquery/jquery-1.11.2.min.js"></script> <script> fun

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

我编写了这个,它可以工作,但只在Chrome上???它并不完美,因为我需要点击两下才能显示翻译页面

我在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次来显示正确的文件。 有没有更好的想法?

您需要给$.ajax时间来完成,因为它是异步的

现在,重新加载是在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');
});