【问题标题】:using ajax for change website language使用 ajax 更改网站语言
【发布时间】:2017-11-04 15:56:14
【问题描述】:

我有非常简单的 PHP html 代码来更改我的网站语言,我需要在选择语言后使用 Ajax 来不重新加载,但老实说,我以前从未使用过 ajax,我不知道如何使用它。

我用谷歌搜索并找到了一些代码,但我失败了。

HTML:

 <form action="" method="get">
      <input type="submit" value="per" id="per" name="per">
      <input type="submit" value="eng" id="eng" name="eng">
</form>

PHP:

function lang()
{
    $lang = 'per';
    if (isset($_GET['per']))
        return $lang = 'per';
    else
        return $lang = 'eng';
}

阿贾克斯:

$.ajax({
    type: "GET",
    url: 'index.blade.php',
    data: {name: 'per'},
    success: function(data){
               alert(data);
               window.location.reload();
             }
    });

所有代码都在一个名为

的页面上
index.blade.php

当我点击按钮时,php 代码工作正常只需要 ajax 来不重新加载页面

【问题讨论】:

  • 您是否尝试在 ajax 成功响应后阻止页面重新加载
  • 是的。这正是我想做的事
  • 但是如果你实现了 window.location.reload() 会刷新页面
  • 您是否尝试删除 window.location.reload() 部分
  • 我删除 window.location.reload() 并仍然页面重新加载。我认为 Ajax 代码甚至不起作用

标签: php jquery html ajax laravel


【解决方案1】:

试试这个:

html:

<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<form action="" >
    <button type="submit" id="button1">Click
    </button>
</form>

<script type="text/javascript" src="1.js"></script>
<!--<script type="text/javascript" src="2.js"></script>-->
</html>

js:

document.getElementById("button1").addEventListener("click",function(e){
    //alert("hello");
    e.preventDefault();  //a button's default behavior is to submit the form which this function prevents
        $.ajax({
        url:"example.php",
        success:function(result){

            alert(result);
            location.href=location.href; //here you can specify where you want to get your ajax call to redirect to.
        }

    })
    return false;

})

php 文件:

<?php
echo "Hello world";
?>

希望这就是你要找的东西!

【讨论】:

    【解决方案2】:

    我建议学习一些关于 Ajax 的教程,我将尝试在这里简单地接触一下这个主题。

    首先,在做 Ajax 时,你基本上是调用一个网页或脚本(一个实际的 url,而不是用 PHP 编写的函数)。您得到的结果(HTML、XML、CSS、JSON、JPG),您可以在代码中使用,在 DOM 中插入 ii,更改文档等。

    在我看来,更改语言是一个站点范围的操作,可能应该作为正常调用来实现。通常,如果您更改语言,则应翻译整个页面,从顶部(标题)到结束正文之前的最后一段文本。

    如果您只需要更改网页的一小部分,请查看网址 jQuery get

    页面使用示例

    $.get( "ajax/test.html", function( data ) {
      $( ".result" ).html( data );
      alert( "Load was performed." );
    });
    

    执行您想要的操作,只需更改 url。希望我能帮上一点忙。

    【讨论】:

    • 是的,我知道我应该学习教程,但不幸的是现在我没有时间,但我稍后会学习 Angular。第二:你是说在这种情况下重新加载页面不重要吗?
    • 重新加载页面不应该改变语言。语言应该以某种方式定义,例如srv.tld/page?lang=en,或srv.tld/en/page,或en.srv.tld/page,PHP 应解析请求的语言并做出响应
    • 除上述之外,人们倾向于将语言放在会话中,但这对于 SEO 来说是一个非常非常糟糕的策略,因为 url srv.tld/page 将用于所有语言(取决于用户选择)
    • 除上述之外,对于 SEO,您应该使用不同语言的链接,而不是表单。
    猜你喜欢
    • 1970-01-01
    • 2017-07-23
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多