【发布时间】:2011-09-26 17:04:48
【问题描述】:
我想用多语言制作网站并使用 ajax 选择语言,并且将从数据库中选择不同的单词,我想使用 session[lang],我不想使用 GET[lang]。 我尝试从 5 天开始做这个,但我尝试了很多变种,现在我很困惑
现在我在这里:
我有 model -> 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/libraries/Session.php(来自 CodeIgniter_2.0.2.zip 的原始文件)-> 我下载 http://codeigniter.com/wiki/File:CI_1.5.1_with_Session.zip/ 没有问题
【问题讨论】:
-
如果您已回答此问题,请添加答案并将其标记为已回答。
标签: ajax session codeigniter select multilingual