【发布时间】:2015-04-07 22:02:47
【问题描述】:
我在 PHP 中使用会话变量来管理多语言站点中的当前语言。为了实现我想要的,我使用了一个标志图标,当单击它时(jQuery)它告诉 lang_json.php 将会话变量切换到新语言。
我在 jQuery 方面没有收到错误:
var sendData = 'en';
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "lang_json.php",
data: ({newLang: sendData}),
dataType: "json",
success: function (msg) {
alert('Success');
},
error: function (err){
alert('Error');
}
});
但是 PHP 文件没有设置会话变量:
lang_json.php:
<?php
// Session variables
session_name('aklogin'); // Starting the session
session_start();
if( isset($_POST['newLang']) ){
$_SESSION['current_lan'] = $_POST['newLang'];
}else{
$_SESSION['current_lan'] = "Not Posting";
}
?>
会话变量返回“Not Posting”。
【问题讨论】:
-
你是如何测试的?
-
您可以试试:data: ({"newLang": sendData}),用引号中的“newLang”吗?看起来它正在尝试使用那里不存在的变量。是不是在该行代码的 JavaScript 面板中抛出错误?
-
JavaScript 面板上没有错误。
-
我正在通过 Chrome 开发者工具测试 jQuery。
-
看起来 Json 内容类型被抛弃了。
标签: javascript php jquery ajax session