教你怎麼用ajax傳陣列(也可以是轉為json)

2021-08-16 17:16:10 字數 1626 閱讀 8523

我之前寫過乙個關於ajax的詳解,那個是標準的ajax,今天介紹的是怎麼用ajax傳遞陣列這樣的資料型別呢?很多的時候我們需要給後端的資料不是幾個單獨的資料,一般見到的**的是這樣的:

data:
這樣的是最常見的一種資料格式,常用的是註冊和登入,結合jquery將使用者輸入的使用者資訊取出來,賦值給乙個變數,類似於這樣的:

var id = $("#id");

var name = $("#name");

var *** = $("#***");

然後就是之前說的,將資料放到data裡面,當然這是最常見的一種傳輸方式,但是真正的專案中有的時候是多條資料,是我們遍歷出來的,然後是陣列的格式傳遞過去的,類似於:

這樣的,那麼這個時候他們的資料就是這樣的:

0:

1:2:

length:3

那麼這個時候,ajax直接寫data乙個乙個的寫行不行呢?當然是可以的,但是當你新增一列的時候就會頭痛了,資料永遠是不對的,所以這個時候就需要這樣處理資料:

宣告乙個陣列:

var casevos = ;

/*遍歷的取資料·*/

for( var j=1;j<=i;j++)

casevos.push(data);

}

如果您不知道裡面的i是什麼,沒關係,是這樣的:

if(divlist***.length<5)else
其實就是我新加一列的js,我們需要判斷的是使用者是不是無限增加了,這個是專案的需求,不要糾結。ok回到傳遞資料的地方,這個時候資料取到了,是陣列,怎麼給ajax傳遞過去呢?看**:

/*這個時候是已經將資料取出來了,但是是需要將資料傳送給後端的,所以需要的是寫乙個ajax*/

$.ajax(, function());

}else

}});

這是一段簡單的ajax ,但是已經是可以將陣列的資料傳遞過去了,裡面需要說明的一點是,

contenttype是傳輸過去的時候的資料型別,datatype是接收伺服器的時候的資料型別
所以如果不設定這裡的話,也是可以的,只是看你的後端**的資料型別是什麼樣的,根據情況來看的,這個是沒有關係的。

那麼contenttype的格式其實有四種:

這又是乙個常見的 post 資料提交的方式。我們使用表單上傳檔案時,必須讓 form 的 enctyped 等於這個值

json 格式支援比鍵值對複雜得多的結構化資料,這一點也很有用。記得我幾年前做乙個專案時,需要提交的資料層次非常深,我就是把資料 json 序列化之後來提交的。不過當時我是把 json 字串作為 val,仍然放在鍵值對里,以 x-www-form-urlencoded 方式提交。

google 的 angularjs 中的 ajax 功能,預設就是提交 json 字串。

它是一種使用 http 作為傳輸協議,xml 作為編碼方式的遠端呼叫規範。

ajax傳陣列問題

我的工程spring mvc,juqery。注 強調下,這是ajax傳的,不是html。html傳在後台是直接request.getparametervalues classids 的。大概情況是,搞了乙個陣列classids,通過ajax傳到後台,原本準備通過spring直接在方法引數中拿,行不通...

js陣列作為引數用ajax向後台傳引數

1 前台往後台傳引數時,可以這樣寫 2 var chessid 123 3var i 0 45 var data 67 新增單個引數 8 data.push 9 data.push 1011 迴圈新增集合引數物件 12 data.push 13 data.push 14 i 1516 ajax 22...

使用AJAX傳陣列,後台接受陣列

1.前台介面,獲取相同input中的值 例如有3個相同的input,我在後台要獲取這三個input裡面的值 2.js 首先獲取這幾個input var starry input name starry 使用 map 函式用於使用指定函式處理陣列中的每個元素 或物件的每個屬性 並將處理結果封裝為新的陣...