根据ajax成功获取会话值

时间:2012-11-07 13:59:39

标签: php jquery

我有一个使用jQuery ajax调用的PHP页面。

在我执行AJAX并返回成功值后,我需要使用此值从PHP数组中提取项目,存储在会话中并使用新集合更新我的SPAN。

这是我到目前为止所得到的。我测试过,我确实返回了正确的数据值。我想我在jQuery中的语法是关闭的,因为我的原始跨度淡出,但没有任何回来。

JS:

$.ajax({ 
    ...
},
success: function(data){
    var nextItem = <?php echo $_SESSION['items'][data]->desc; ?>
    $('.x').fadeOut();
    $('.x').attr(id, data); 
    $('.x').text(nextItem).fadeIn();    
}); 

HTML:

<span id="'.$_SESSION['items'][0]->id.'" class="x">'.$_SESSION['items'][0]->desc.'</span>

1 个答案:

答案 0 :(得分:1)

您应该在AJAX调用中返回会话变量。执行PHP代码以获取您的AJAX调用正在访问的URL上的会话变量。 AJAX调用的响应(在本例中是成功函数中的'data'变量)将是以下结果:

<?php echo $_SESSION['items'][data]->desc; ?> 

因此,您的JS中不会有PHP代码。

如果需要返回多个值,则可以考虑使用JSON。您的AJAX处理页面可能类似于:

$result = array('id' => $id, 'session' => $_SESSION['items'][$id]->desc);
echo json_encode($result);

您的JS可能如下所示:

$("#getJSON").click(function() {
    $.ajax({
        ...
        success: function(data) {
            $obj = $.parseJSON(data);
            console.log($obj[0].id, $obj[0].session);
        }
    });
});​