[英]jQuery ajax doesn't send array
我試圖通過AJAX在數組中發送一些數據以將其保存到數據庫,我以此方式構建數組:
$( "#saveordering" ).button().click(function( event ) {
event.preventDefault();
var data = document.getElementById('tabs');
var categories = data.getElementsByTagName("div");
var categoryArray = new Array();
for (var i=0; i < categories.length; i++) { //Loop door de categoriëen
var category = categories[i];
var categoryId = category.getAttribute('id');
categoryArray[i] = new Array();
categoryArray[i]['id'] = categoryId;
categoryArray[i]['forums'] = new Array();
var forums = category.getElementsByTagName("li");
for (var j=0; j < forums.length; j++) { //Loop door de forums
var forum = forums[j];
var forumId = forum.getAttribute('id');
categoryArray[i]['forums'][j] = new Array();
categoryArray[i]['forums'][j]['id'] = forumId;
}
}
$.ajax({
type: 'POST',
url: "ajax/updateboardorder.php",
dataType: 'json',
data: {ldelim}"categories" : categoryArray{rdelim} ,
success: function(data) {
}
});
});
但是什么也沒發送,當我在PHP中執行var_dump($_POST)
,我得到了:
數組(大小= 0)為空
我究竟做錯了什么?
看這段代碼
categoryArray[i] = new Array();
categoryArray[i]['id'] = categoryId;
categoryArray[i]['forums'**strong text**
嗯,這不是一個“數組”,您正在創建一個關聯數組
categoryArray[i] = {};
categoryArray[i]['id'] = categoryId;
categoryArray[i]['forums'] = {};
要么
categoryArray[i] = {
"id" : categoryId,
"forums" : {}
};
您想要一個對象。 與稍后在forums
中的代碼相同。
這是您的數組正在處理的事情:
var a = new Array();
a['id'] = 123;
JSON.stringify(a); // []
a; // []
a.length; // 0
a.id; // 123
您試圖像使用原始對象一樣使用數組:
var o = {};
o.id = 123;
JSON.stringify(o); // {"id":123}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.