0
我有一個列表的關聯數組。看看下面的JSON:AJAX:如何發佈空數組?
console.log(JSON.stringify(fields);
輸出
{
"sb1":[],
"sb2":["val1","val2","val3"],
"sb3":["val1","val2","val3"]
}
正如你所看到的,陣列的條目 「SB1」 是空的。陣列「sb1」消失,同時發佈var「fields」到PHP。
下面是一個代碼片段:
$(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);
}
});
});
});
如果'JSON.stringify'包含所有內容,jQuery肯定會發送所有內容,因爲它不能更改字符串。這是您使用的服務器端代碼,並不理解空數組。 – adeneo
所以我應該看看PHP腳本,對吧?該死,我有點笨......謝謝!請把它寫成答案,我將其標記爲解決方案 – Chpo7234
我認爲這是PHP解釋表單的方式,空值不包括在內 – adeneo