0

ajax関数から別のajaxに値を渡す方法を知りたいのですが、このコードを試しましたが、機能しません。誰かがそれを正しい方法で行う方法を知っていますか?ありがとう!

    $("#button").click(function(){
    var passedValue = '';
    $.ajax({
        url://
        type://
        success:function(data){
            if(typeof==="object"){
            for(var i=0;i<data.length;i++){
                passedValue = data[i]["passedThis"];
            }
        }
    }
    });
    $.ajax({
        data: { receivedPassed: passedValue;}
    });
});
4

2 に答える 2

2

これらのリクエストは非同期であるためpassedValue、2番目のリクエストが送信されるまでに準備ができていません。おそらく、それらを順番に送信することをお勧めします。

$("#button").click(function() {
    $.ajax({
        url: //
        type: //
        success: function(data) {
            var passedValue;

            if(typeof (?) === "object") {
                for(var i = 0; i < data.length; i++) {
                    passedValue = data[i]["passedThis"];
                }

                $.ajax({
                    data: { receivedPassed: passedValue }
                });
            }
        }
    });
});

passedValueまた、そのループを通過するたびに上書きします。+=の代わりに=、または配列などを使用することを意味しましたか?

于 2012-09-16T16:31:56.453 に答える
1

を使用してAJAX呼び出しをチェーンし、:.then()を使用して最初の呼び出しから2番目の呼び出しにデータをフィルタリングします。.pipe()

$("#button").click(function() {
    $.ajax({
      url: //
      type: //
    }).pipe(function (data) {
      var passedValue = [];
      for (var i = 0; i < data.length; i++) {
        passedValue[i] = data[i]["passedThis"];
      }
      return passedValue;
    }).then(function (receivedPassed) {
      $.ajax({
        data: { receivedPassed: passedValue }
      }
    }
});

また、.success()コールバックはjQuery1.8で非推奨になることに注意してください。

非推奨の通知:、、、jqXHR.success()およびjqXHR.error()コール jqXHR.complete()バックはjQuery1.8で非推奨になります。

于 2012-09-16T16:48:28.737 に答える