поэтому в моем 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. Вы могли бы сделать что-нибудь действительно.