簡體   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