var data = [];
$('.choose_Tab tbody .active').each(function(i){
var tmp = {};
tmp['proid'] = $(this).attr('data-id');
tmp['num'] = $(this).attr('data-id');
data.push(tmp);
})
$.ajax({
url: "/index.php/index/products/addshopping",
type: 'post',
data: {'data':data},
// traditional: true,//防止深度序列化
success: function (re) {
if (re.code === 1) {
setTimeout(function () {
location.href = info.url;
}, 1000);
}
$(".mbmbmbmb .contactsss span").text("已加入購物車!");
$(".mbmbmbmb").fadeIn();
}
})
以上是ajax正常發送資料制作;
其他方法:
1 traditional :true 将ajax的參數traditional設定為true,那麼可以将數組轉為一個格式字元串,不過這個還需要到背景進行字元串解析。這個方法測試了 必須要把data = JSON.stringify(data) 依然是需要轉為json ,而且還是需要設定 var tmp = {},并沒簡化過程;
2 将js object(或array)轉為json :JSON.stringify(data) 在var tmp =[]本質為數組的情況下,發送時有資料,背景接受依然為null,
是以設定 var tmp = {}是唯一的辦法
查閱資料可知:
數組表示有序資料的集合,而對象表示無序資料的集合。如果資料的順序很重要,就用數組,否則就用對象。
當然,數組和對象的另一個差別是,數組的資料沒有”名稱”(name),對象的資料有”名稱”(name)。
但是問題是,很多程式設計語言中,都有一種叫做”關聯數組”(associative array)的東西。這種數組中的資料是有名稱的。
• 但是在《javascript DOM》中,不推薦我們使用 關聯數組;因為在本質上你建立的關聯數組的性質就是Array對象的屬性