JS實現動態生成表格並向后端提交表格數據(二)


  上一篇我們講到了如何動態生成表格,那么這一篇我們就講一下如何獲取表格中的多條數據,並提交至后台服務器。

  在開發之前我也在網上找了一些資料,要么太簡潔,要么看不懂,但是他們大多數都提到了使用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數據發送到后台處理。

至此,我們獲取表格中的多條數據並提交至服務器的代碼就編寫完了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM