Ajax fonksiyonu ile php sunucu oturum değişkenlerini almak nasıl?

2 Cevap php

yani benim php böyle bir şey var

$_SESSION['opened'] = true;

Kullanıcının diğer bazı html \ php sayfaları ile bazı eylemleri gerçekleştirmek olacak kadar Ama doğrudur ayarlanır olmayacak

Yani bu oturum değişkeni elde edebilmek için bazı Ajax fonksiyonu gerekir. Ve fonksiyonu bazı PHP örnek almak Ajax hazır formda değişken olsun.

bu yüzden $_SESSION bir değer dönecektir (ki bazı basit php kod) bir eylem talep AJAX için bir şey gerekir.

Böyle bir şey yapmak nasıl?

2 Cevap

Basit jQuery, örneğin:

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

Ve getsession.php:

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

Sen required AJAX için jQuery kullanmak değil, ama kesinlikle tavsiye ederim.

Edit:

Yanıt olarak:

Ben almak istiyorum ne değişken benim JS fonksiyonunu söylemek mümkün olmak istiyorum.

Bu deneyebilirsiniz (denenmemiş):

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

Ve 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);
}

Daha ayrıntılı bir bakış için $.get belgelerine bakabilirsiniz.

http://my.host/response.php de PHP Dosya

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

Sonra HTML, Ekle jQuery gibi:

<script type="text/javascript" src="/path/to/jQuery-x.y.z.js"></script>

Daha sonra:

<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>

Ve eklemek myform.php:

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

Bu JavaScript olmayanlar için tutarlı bir deneyim verecektir. Sen bir div / gizleme göstermesi gerekmez. Eğer gerçekten bir şey yapabilirdi.