【问题标题】:How to change the page language without refresh in MVC model?如何在 MVC 模型中更改页面语言而不刷新?
【发布时间】:2012-03-25 14:52:04
【问题描述】:

settings.php 中,我输入了一些真实姓名、爱好、城市和语言标签

html表单很简单,我不会复制它:)

这是表单的php代码

<?php
if(isset($_POST['submit'])){


  if($this->edit->process()){
    $s = 1; 
  }

}

if($s){echo '<p id="success">Success</p>';}

?>

这是在视图文件中,当提交表单时,$this->edit = 用于更新用户数据的模型。

一切都很好,但在 head.php 中有这段代码

&lt;?php $lang = $this-&gt;lange('global',$this-&gt;getUser-&gt;language($_SESSION['userID']));?>

与他一起获取用户当前的语言,然后使用 lange() 加载文件

所以如果提交是这样的,输入和选择标签会随着用户选择的内容而变化,但要查看他们必须刷新页面的新语言。这不好,因为用户可能会认为他们做错了什么。

但是如果带有method="POST"的表单页面刷新并且仍然使用旧语言

【问题讨论】:

    标签: php jquery ajax model-view-controller


    【解决方案1】:
    1. 要更改 DOM 模型中的所有文本以在不重定向的情况下更改语言将非常困难。我怀疑这真的是你的愿望。
    2. 您应该在处理任何 POST 表单后进行 GET 方法重定向。因此,您不必打印任何“成功”消息,而是必须重新加载页面。
    3. 使用会话存储语言不是很好的方法,语言必须通过页面地址来设置 - 子域(首选)或虚拟目录。

    【讨论】:

    • 我不使用会话本身的语言我只是使用它来获取当前用户 ID,然后使用一个函数从数据库中获取他的语言。并感谢您的回答:)
    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 2018-05-13
    • 2010-12-26
    • 1970-01-01
    • 2011-06-01
    • 2019-05-07
    • 2016-09-03
    • 2011-03-20
    相关资源
    最近更新 更多