上一篇我們講到瞭如何動態生成表格,那麼這一篇我們就講一下如何獲取表格中的多條數據,並提交至後臺伺服器。 在開發之前我也在網上找了一些資料,要麼太簡潔,要麼看不懂,但是他們大多數都提到了使用Json的方式將多個參數傳入後臺,那麼我就根據這個思路編寫瞭如下的代碼。 1.首先我們來看一下如何獲得表格中的數
上一篇我們講到瞭如何動態生成表格,那麼這一篇我們就講一下如何獲取表格中的多條數據,並提交至後臺伺服器。
在開發之前我也在網上找了一些資料,要麼太簡潔,要麼看不懂,但是他們大多數都提到了使用Json的方式將多個參數傳入後臺,那麼我就根據這個思路編寫瞭如下的代碼。
1.首先我們來看一下如何獲得表格中的數據,還是結合上一篇的例子
<div> <form id="submitForm"> <table border="0" style="text-align: center;" width="100%" id="myTable"> <tr> <td width="150px;">表頭1</td> <td width="150px;">表頭2</td> <td width="120px;">表頭3</td> <td width="120px;">表頭4</td> <td width="80px;">表頭5</td> <td width="100px;">操作</td> </tr> </table> </form> <input type="button" value="添加" onclick="addTable();"> <input type="button" value="提交" onclick="save();"> </div>
我們可以看到在Table標簽的外層我們加了一層form標簽,並設置form標簽的id。
2.接下來我們根據jQuery的“serialize()”方法獲取表格中input標簽的參數
var msg = $("#submitForm").serialize(); //獲得後的msg的值:canshu1=xxx&canshu2=xxx&canshu3=xxx&canshu4=xxx&canshu5=xxx
3.拿到表格中的數據後,我們根據它值的形式把它轉換成json格式的數據
var json = "[{"; var msg2 = msg.split("&"); //先以“&”符號進行分割,得到一個key=value形式的數組 var t = false; for(var i = 0; i<msg2.length; i++){ var msg3 = msg2[i].split("="); //再以“=”進行分割,得到key,value形式的數組 for(var j = 0; j<msg3.length; j++){ json+="\""+msg3[j]+"\""; if(j+1 != msg3.length){ json+=":"; } if(t){ json+="}"; if(i+1 != msg2.length){ //表示是否到了當前行的最後一列 json+=",{"; } t=false; } if(msg3[j] == "canshu5"){ //這裡的“canshu5”是你的表格的最後一列的input標簽的name值,表示是否到了當前行的最後一個input t = true; } } if(!msg2[i].match("canshu5")){ //同上 json+=";"; } } json+="]"; //最終msg的值就被轉換為:[{"key":"value";"key":"value"},{"key":"value";"key":"value"}]格式的json數據
通過上述代碼,我們已經成功的將表格中的多條數據轉換成了json格式的數據,那麼我們就可以通過ajax的方式將Json數據發送到後臺處理。
至此,我們獲取表格中的多條數據並提交至伺服器的代碼就編寫完了。