0

我有一个使用 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>
4

1 回答 1

1

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

<?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);
        }
    });
});​
于 2012-11-07T14:01:35.433 回答