1

jQueryでデータフォームページを取得する関数を作成し、ajaxでデータを送信する必要があります。いくつかの文字列をデータとして送信してテストしましたが、すべて正常に機能していますが、何らかの理由で配列を送信する必要がある場合は機能しません。コンソールで私は持っています:

["3"]
[]

そして、私は警告を受けません。データ型に問題がある可能性がありますか?

$("#save").click(function() {
   var sendArr= new Array();
   var arr = $(".sortable").map(function(){return this.innerHTML}).get();        
   for (var i = 0; i < arr.length; i++) {

       test =$(arr[i]).map(function() {  return $(this).attr("data-ex");    });
       console.log(test);
       sendArr[i]=test;
   }


        $.ajax({
      type: "POST",
      url: "http://localhost/someurl/",
      data:  {action:  sendArr}
    }).done(function( msg ) {
          alert( "Data Saved: " + msg );
    });

});
4

1 に答える 1

0

gogic-テストするためのより簡単な例を作成し、それから構築します。

$(function() {

var serialized = JSON.stringify({"msg" : "Hello!"});
$.ajax({
    url: myURL,
    type: 'POST',
    data: serialized,
    contentType: 'json',
    dataType: 'html'
}).done(function(obj) {
    $('div').html(obj.msg);
}).fail(function() {
    alert('Failed!');
});

});

dataTypeはあなたが受け取ることを期待するものです。contentTypeは、送信するものです。JSONはJSON.stringify(obj)でシリアル化する必要があります。

また、配列をJSONとして送信すると、次のようになります。

var array_json = {"myArray" : [1, "example", 2, "array"]}
var serialized = JSON.stringify(array_json)

console.logを使用して、作成しているJSONが有効であることを確認します。

于 2012-12-02T21:53:30.060 に答える