0

関数呼び出しによって返されるデータを使用してAjaxリクエストを起動しようとしていますが、私が知る限り、Ajax呼び出しは関数呼び出しが返されるのを待っていません。

getSelectedMessagesによって返される値の配列を使用してAjaxリクエストを実行する前に、可変数のチェックボックスの値を取得するために呼び出していますgetSelectedMessages

getSelectedMessagesこのように見えます:

var getSelectedMessages = function() {
    var selected = [];
    $('input:checkbox[name=multipleops]:checked').each(function() {
      selected.push($(this).attr('value'));
    });
return selected;
}

そして、それを呼び出すAjaxリクエストは次のようになります。

$.ajax({
   type: "POST",
   url: "/api/messages/",
   data: { ids: getSelectedMessages(), folder: folder },
   cache: false,
   success: function(){ location.reload() }
});

私は少し調べてみましたが、私が見つけたのは、呼び出しから値を返す方法それに値を返す方法についての答えだけです。

4

3 に答える 3

1

使用する

beforeSendajaxの属性

試す

var getSelectedMessages = function() {
    var selected = [];
    $('input:checkbox[name=multipleops]:checked').each(function() {
      selected.push($(this).attr('value'));
    });
return selected;
}

 $.ajax({
   type: "POST",
   url: "/api/messages/",
   beforeSend : function () { return jQuery.isEmptyObject(getSelectedMessages);  }
   data: { ids: getSelectedMessages(), folder: folder },
   cache: false,
   success: function(){ location.reload() }
});

参照

beforeSend
isEmptyObject

于 2012-07-09T08:22:01.277 に答える
0

jqueryのajax関数の外でgetSelectedMessages()を呼び出します(?)

于 2012-07-09T08:22:08.250 に答える
0

この関数は、リクエストが送信される前に実行されます。本当の問題は、getSelectedMessaged()が配列を返すことです。これにより、jQueryの内部でシリアル化した後、undefined=undefinedになります。そして、それは$ .ajax()によって無視されるので、varsを送信していないように見えますが、未定義であるため無視されています。

文字列を値と連結し、それを自分でクエリ文字列パラメータにすると、機能するはずです。?var [] = something&var [] = somethingelseのようなものをサーバーに送信したいので、PHPでは配列として終了しますか?getSelectedMessages関数で自分で文字列を作成する必要があります。

お役に立てば幸いです、PM5544

于 2012-07-09T08:39:50.753 に答える