Как изменить язык страницы без обновления в модели MVC? - PullRequest
0 голосов
/ 25 марта 2012

В 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 есть этот код

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

С его помощью вы получите текущий язык пользователя и после этого загрузите файл с помощью lange ()

Так что, если отправка похожа на это, входные данные и тег выбора изменяются в зависимости от того, что выбрал пользователь, но для того, чтобы увидеть новый язык, они должны обновить страницу. Это не хорошо, потому что пользователь может быть уверен, что он что-то сделал не так.

Но если форма с методом = "POST" страница обновляется и все еще со старым языком

1 Ответ

2 голосов
/ 25 марта 2012
  1. Будет довольно сложно изменить все тексты в модели DOM, чтобы изменить язык без перенаправления. Я сомневаюсь, что это действительно твое желание.
  2. Вы должны сделать перенаправление метода GET после обработки любой формы POST. Таким образом, вместо того, чтобы печатать любые сообщения об успехе, вы должны перезагрузить страницу.
  3. Использование сессии для хранения языка не является хорошим методом, язык должен быть установлен с помощью адреса страницы - субдомена (предпочтительно) или виртуального каталога.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...