Как мне вернуть переменную сеанса php с AJAX? - PullRequest
0 голосов
/ 24 октября 2018

Я прошел через тонну других сообщений и не могу понять, как это сделать.

AJAX:

$.ajax({
   type: 'POST',
   url: 'getSessionVariable.php',
   contentType: 'application/json',
   dataType: 'json',
   success: function(data) {
     alert(data);
   },
   error:function(data){
      alert("error occured"); //===Show Error Message====
      alert(data); 
   }
});

PHP:

<?
   session_start();
   print_r(json_encode($_SESSION["Variable"]));
?>

Это решение возвращает «Произошла ошибка»

Второй оператор Ajax:

jQuery.ajax({
  type:'POST',
  url: 'getSessionVariable.php',
  contentType: 'json',
  success:function(data){ 
    alert("Sucess!");
    alert(data);
    },
  error:function(data){
    alert("error occured"); //===Show Error Message====
   // alert(data); 
}
});

Второе решение AJAX успешно выполняется, но возвращает всю страницу php назад, я просто ищу переменную сеанса, которая будет возвращена ...

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Убедитесь, что вы используете теги исправлений <?php ?> opener

И для использования <?= ?>, которые заменяют <?php echo "myString"; ?>, вы должны изменить свой short_open_tag в настройках php ini.

Из документации PHP у вас есть:

Версия 7.0.0 Теги ASP <%, %>, <%=, и тег script удалены из PHP.

-

5.4.0 Тег <?= всегда доступен независимо от настройки ini short_open_tag.

Измените в своем коде <? для <?php и для отправки json_encode вы должны использоватьecho Состоит из print_r

    <?php
       session_start();
       echo json_encode($_SESSION["Variable"]);
    ?>
0 голосов
/ 24 октября 2018

Это было потому, что я использовал короткий тег.Это упущение действительно повредило мне на этот раз, о!

<? 

, а не

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