0

私は機能を持っています:

function name(type)
{
    $.i="";
    $.post("name.php", type, function(data, status){
        $(".pic").attr("src", data);
        $.i=data;

    })
    alert($.i); //this is not working
}

上記のコードでは、アラートは空のアラート ボックスを表示しています。しかし、私が持っているとき

function name(type)
{
    $.i="";
    $.post("name.php", type, function(data, status){
        $(".pic").attr("src", data);
        $.i=data;
        alert($.i); //now this is working
    })

}

name.php ファイルで返された値を返したい。name.phpが含まれていますecho "string"。これはテスト専用です。2番目のコードstringでは表示されていますが、最初は機能していません。

関数から値を返し、受け取った値を $.post() の外部または関数内で宣言された変数に割り当てるにはどうすればよいですか。

前もって感謝します。

4

1 に答える 1

5

post の非同期コールバックは、post の実行後に呼び出されます。post から関数を呼び出して、コールバックで返された値に対して操作を実行できます。

function name(type)
{
    $.i="";
    $.post("name.php", type, function(data, status){
        $(".pic").attr("src", data);
        $.i=data;
        //alert($.i); //now this is working
        callToFunctionPassingData(data);
    })    
}

遅延実行の使用を試すことができます。この投稿では、それを実現する方法を説明します。

于 2013-01-20T12:42:47.840 に答える