Как получить переменные сеанса с php-сервера с помощью функции Ajax? (PHP HTML JS Ajax)

поэтому в моем php у меня есть что-то вроде этого

$_SESSION['opened'] = true; 

Но не будет установлено значение true, пока пользователь не выполнит некоторые действия с некоторыми другими страницами html \ php

Поэтому мне нужна функция Ajax для получения этой переменной сеанса. И некоторый пример PHP-функции для получения переменной в форме, готовой для Ajax, для ее получения.

поэтому мне нужно что-то AJAX, запрашивающее действие (к некоторому простому php-коду), которое вернет значение из $_SESSION .

Как это сделать?

Простой пример jQuery :

 var session; $.ajaxSetup({cache: false}) $.get('getsession.php', function (data) { session = data; }); 

И getsession.php :

 <?php session_start(); print json_encode($_SESSION); 

Вы не обязаны использовать jQuery для AJAX, но я настоятельно рекомендую его.

Редактировать:

В ответ на:

Я хочу, чтобы моя функция JS могла указать, какую переменную я хочу получить.

Вы можете попробовать это (непроверенный):

 var session; $.ajaxSetup({cache: false}) $.get('getsession.php', {requested: 'foo'}, function (data) { session = data; }); 

И PHP:

 <?php session_start(); if (isset($_GET['requested'])) { // return requested value print $_SESSION[$_GET['requested']]; } else { // nothing requested, so return all values print json_encode($_SESSION); } 

Взгляните на документацию $ .get для более детального обзора.

PHP-файл по адресу http://my.host/response.php

 <?php session_start(); if(isset($_SESSION['opened'])) echo "true"; ?> 

Затем в HTML добавьте jQuery, например:

 <script type="text/javascript" src="/path/to/jQuery-xyzjs"></script> 

Затем:

 <script type="text/javascript"> $(document).ready(function(){ $.ajax({ url:'/response.php', cache:false, success:function(data){ // Do something with the result if(data=="true"){ $('#mydiv').show(); }else{ $('#mydiv').hide(); } } ); }); </script> 

И добавьте в myform.php :

 <h1>Some Random HTML</h1> <div id='mydiv' class="<?php if(isset($_SESSION['opened']) && $_SESSION['opened']) echo "hidden_class";?>"> ...</div> 

Поскольку это даст постоянный опыт тем, у кого нет JavaScript. Вам не обязательно показывать / скрывать div. Вы могли бы сделать что-нибудь действительно.