Codeigniter многоязычный - выберите из ajax - проблема сеанса - PullRequest
2 голосов
/ 01 июля 2011

Я хочу сделать сайт с несколькими языками и выбрать язык с помощью ajax, и разные слова будут выбраны из базы данных, и я хочу использовать сессию [lang], и я не хочу использовать GET [lang].я пытаюсь из 5 дней сделать это, но я пробую так много вариантов, и я запутался сейчас

сейчас я здесь:

у меня есть модель -> Langs ->

function set_langs($arg)  {
  $this->session->unset_userdata(‘lang’);
  $this->session->set_userdata(‘lang’, $arg);
  return $arg;
}
function get_langs()  {
  return $this->session->userdata(‘lang’);
}

в Home контроллере ->

public function index(){
  if($this->session->userdata(‘lang’)==’‘){
  $this->Langs->set_langs(‘en’);
  $glang[‘lang’] = $this->Langs->get_langs();
  }else{
  $glang[‘lang’] = $this->Langs->get_langs();
  }
$this->load->view(‘header’, $glang);
}
 public function set()
{
  if($_POST && $_POST[‘lang’] != NULL) {
    $this->Langs->set_langs($_POST[‘lang’]);
    $return[‘error’] = false;
    $return[‘msg’] = $this->session->userdata(‘lang’).’ ok!’;
    echo json_encode($return);
  }else{...}

}

и в header.php-> в JS ->

$.ajax({
  type: “POST”,
  url: “index.php/home/set”,
  dataType : ‘json’,
  data: “lang=”+lang,
    success: function(data){
    if(data.error === true){
    $( “#dialog-message2” ).text(data.msg).dialog({
    modal: true,
    buttons: {
    Ok: function() {
    $( this ).dialog( “close” );[removed]=location.href;
                      }
                    }
                  });
            }else{...}

, когда страница обновляется, язык не изменился, но при возврате сообщения из ajax это работает, так что, где я ошибаюсь, извините за плохой английский спасибо

* проблема была -> system / library / Session.php (исходный файл из CodeIgniter_2.0.2.zip) -> я загружаю http://codeigniter.com/wiki/File:CI_1.5.1_with_Session.zip/ и никаких проблем

1 Ответ

0 голосов
/ 14 июля 2011
...