0

重複の可能性:
AJAX 応答テキストを返すには?

フォーム送信アクション用の JQuery タイムアウト関数をまとめようとしています。ページのリロードのためにPHPを介して同様のものを用意しており、最初のページのロード時間をに保存してい$_SESSION['pageLoad']ます。私が今やろうとしているのは、その値を取得して、JQuery 数学で使用することです。

SOを検索した後、次のようになりました。

PHP

<?php
    //filename: getsession.php
    session_start();
    echo json_encode($_SESSION['pageLoad']);

JQuery

$("#sms-creator").submit(function() {
    var     session;
    $.ajaxSetup({cache: false})
    $.get('sms_includes/getsession.php', function(data) {
        session = data;
    });

    //at this point I just want to see what I'm getting, hence the next 2 lines...
    alert(session);
    return false;
});

PHP ファイルへのパスは、.js ファイルではなく、フォーム ページに対して相対的です。

私のアラートは「未定義」のみを返します。私は Javascript とそのライブラリに不慣れなので、その欠点は明らかではありません。どんな助けでも感謝します。

4

1 に答える 1

2

ajax呼び出しは非同期で行われます。したがって、$。getが実行されると、応答のために要求がサーバーに送信されますが、JavaScriptプログラムは非同期で実行されるため、応答を待機しません。alert(session)すると、サーバーから返されたデータに変数sessionが設定されていません。ajaxを同期的に実行するか、アラートセッションをajaxコールバックに入れてみてください。

于 2012-12-17T18:04:56.783 に答える