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 呼び出しの応答 (この場合、success 関数の「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);
        }
    });
});​
于 2012-11-07T14:01:35.433 に答える