天天看點

關于ajax傳遞二維數組的一些測試和驗證

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對象的屬性

繼續閱讀