繁体   English   中英

jQuery和ajax在PHP中设置会话变量

[英]jQuery and ajax to set session variable in PHP

我在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”。

您声称要发送服务器JSON,但是:

  • 你不是
  • PHP未设置为接收JSON

删除contentType: "application/json; charset=utf-8", ,然后jQuery将设置正确的内容类型,PHP将填充$_POST

我一直在玩jQuery方面,这是有效的:

var sendData =  'en'; 

$.ajax({
    type: 'POST',
    url: 'app/pro/pro_lang_session_json.php',
    data: {'newLang': sendData}, 
    success: function (msg) {
        alert(sendData);
    },
    error: function (err){
        alert('Error');
    }
});

会话变量使用此代码设置为“en”。

谢谢您的帮助! @DelightedDOD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM