Я использую переменную сеанса в PHP для управления текущим языком на многоязычном сайте. Для достижения того, что я хочу, я использую значок флага, который при нажатии (jQuery) сообщает lang_json.php, чтобы переключить переменную сеанса на новый язык.jQuery и ajax для установки переменной сеанса в 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».
как вы это тестируете? –
Можете ли вы попробовать: данные: ({"newLang": sendData}), С "newLang" в кавычках? Похоже, он пытается использовать переменную там, которая не существует. Не вызывает ли ошибка в панели JavaScript на этой строке кода? – DelightedD0D
На панели JavaScript нет ошибок. – Architect