weixin_33709590 2015-10-15 08:16 采纳率: 0%
浏览 44

AJAX:如何发布空数组?

i have an associative array with lists. Take a look at the following JSON:

console.log(JSON.stringify(fields);

Output

{
  "sb1":[],
  "sb2":["val1","val2","val3"],
  "sb3":["val1","val2","val3"]
}

As you can see, array-entry "sb1" is empty. Array "sb1" disappear while posting var "fields" to PHP.

Here is a code-snippet:

$(document).ready(function() {
  $("#button").click(function(e) {
    e.preventDefault();
    var fields = {};
//The following saves selectboxes and options in var fields//
    $("select").each(function() {
      var $select = $(this);
      fields[$select.attr('name')] = $select.find('option').map(function() {
        return $(this).val();
      }).get();
    });

    var jsonObj = fields;
    var jsonStringify = JSON.stringify(fields);
    console.log("JSON.stringify(fields): " + jsonStringify);
//Result is OK

    $.ajax({
      url: "saveJson.php",
      type: "post",
      data: { jsonStringify : jsonStringify },
      success: function (response) {
        console.log("data transmitted: " + response);
//Response doesnt transmit empty arrays!
      },
      error: function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus, errorThrown);
      }
    });
  });
});
  • 写回答

1条回答 默认 最新

  • 普通网友 2015-10-15 08:24
    关注

    Your javascript code send the empty array. If you want to have the empty array in the response of your request, you have to modify the code of your server.

    评论

报告相同问题?