У меня есть блок сообщений в заголовке моего сайта. Когда пользователь нажимает «закрыть msg», сообщение должно исчезнуть и не может быть видно во время текущего сеанса пользователя. Поэтому я решил использовать JQuery Ajax:Невозможно изменить переменную сеанса через AJAX
$('#lang-msg .close').on('click', function(event) {
event.preventDefault();
$.ajax({
url:"remlmsg.php",
type:"POST",
data:"id=2,myajaxquery=true ",
success:function(html){
console.log(html);
$('#lang-msg').fadeOut(300,function() {
$(this).remove();
})
}
})
})
И в remlmsg.php У меня есть только код, который определяет новую переменную сеанса:
$_SESSION['langmsg'] = 'hide';
echo $_SESSION['langmsg'];
В файле header.php я проверяю, если $ _SESSION ['langmsg'] не определено.
if (!isset($_SESSION['langmsg'])) {
if ($sLanguage == 'ru') {
echo '<script type="text/javascript">
$(function() {
showLangMessage("en");
})
</script>';
}
}
И он всегда говорит правду! Но когда я печатаю данные запроса в функции ajax, он отображает «hide». Объясните мне, пожалуйста, где я ошибся.
P.S. Протестировано на локальном сервере (последний WAMP)
Вы используете session_start в верхней части файла? –
У меня есть файл header.php – onlydimon