PHP + AJAX (jQuery) - чтение данных сеанса при возврате $ .post () - PullRequest
0 голосов
/ 08 ноября 2011

В настоящее время я пишу модуль «Изменить учетную запись».Использование jQuery.post ();Я могу успешно обновить свою базу данных и записать переменные сеанса из сценария PHP - однако при попытке доступа к переменной сеанса, в которую я только что записал, данные не обновляются.

Я пишу в сеанс так: $_SESSION['email'] = 'john@doe.com'; в моем Ajax.php

Мой обратный вызов jQuery (минимизированный) при успехе:

$.post(...,function(res)
{
  if(res=='success')
  {
    // Alert the new E-Mail, read from the Session!
    alert("<?php echo $_SESSION['email']; ?>"); 
  }
}

Однако предупреждение не выводит john@doe.com, он выводит, каким бы ни был адрес электронной почты, когда была загружена вся страница .Когда я обновляю страницу, данные сеанса были должным образом обновлены.

У меня есть session_start(); как на index.php (мой сайт), так и в Ajax.php

Если вам нужно большеинформация, пожалуйста, дайте мне знать.:)

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Это потому, что строка предупреждения генерируется при загрузке страницы.И когда вы делаете ajax-запрос, он все равно не меняется, потому что он не обновляется.В случае успеха ajax вы должны вывести responseText, и тогда он будет работать.

1 голос
/ 08 ноября 2011

Прежде всего это должно быть

alert("<?php echo $_SESSION['email']; ?>");

и во-вторых, $ .post является динамическим, но <?php echo $_SESSION['email']; ?> является статическим. Он рендерится один раз при загрузке, а не каждый раз, когда вы делаете .post (), так что если

$_SESSION['email'] = 'blah'; к моменту загрузки страницы, предупреждение всегда будет alert("blah");, пока вы не перезагрузите страницу.

Если вы хотите предупредить новую переменную сеанса, вы должны сделать новый ajax-запрос к файлу php (т.е. return_session.php? Key = email), который вернет новую переменную сеанса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...