1

Ajax 応答を変数に格納するのに問題があります。これまでの私のコードは次のとおりです。

function bbl(phrase) {
    var lp;
    $.post(
        'babelJS.php',
        {"phrase" : phrase},
        function (data){
            lp = data.lp;
            $("#test1").html(lp);
        },
        'json'
    );
    $("#test2").html(lp);
}

divtest1は正しくフィールドですが、そうではありません...セクションの後に生き残れtest2ないのはなぜですか?lp$.post

ありがとう!

更新: bbl() が lp を返すことも必要です...

更新 2 :

この投稿への最初のコメントにあるリンクが FAQ から来ている、次のことはもううまくいきません。

function getBbl(phrase,callback) {
    $.post(
        'babelJS.php',
        {"phrase" : phrase},
        function (data){
            callback(data.locphrase);
        },
        'json'
    );
}

function bbl(phrase) {
    var lp
    getBbl(phrase,function(locphrase){
        lp = locphrase;
    });
    return lp;
}
4

1 に答える 1

2

問題は、$.post呼び出しが非同期であることです。投稿が送信された後に .html() 行が実行されますがlp = data.lp、投稿応答が返されるまで行は実行されません。

したがって、割り当ては正常に機能していますが、遅すぎます。機能させるには、.html() 行を投稿の success 関数に移動します。

于 2012-04-28T12:32:40.423 に答える