table 表提交数据(不用对应input版)

<!doctype html>

<html>

<head><title>table 表提交数据(不用对应input版)</title></head>


<body>


<div id="table-div">

<table id="table-batabase">

<tr><th>编号</th><th>名字</th><th>年龄</th><th>性别</th><th>爱好</th></tr>

<tr><td>1</td><td>小明</td><td>20</td><td>男</td><td>篮球</td></tr>

<tr><td>2</td><td>小猪</td><td>1</td><td>女</td><td>游泳</td></tr>

<tr><td>3</td><td>小狗</td><td>3</td><td>女</td><td>吃饭</td></tr>

</table>

</div>

<div id="dongzuo">

<form id="myform" action="test.php" method="post">

<input id="JSONText" name="jsontext" type="text" value=""/>

</form>

<button id="save-cookie">暂存</button><button id="save">提交</button>

</div>


<script type="text/javascript">

var cookie = document.getElementById('save-cookie');

var save = document.getElementById('save');

var table = document.getElementById('table-batabase');

var myform = document.getElementById('myform');

cookie.onclick = function(){

alert('你点击了暂存功能');

}

save.onclick = function(){

//alert(table.rows.length);

var tr;

var dataArray = new Array();

for(var i=1;i<table.rows.length;i++){

date = new Object();

tr = table.rows[i];

date.Code = tr.childNodes[0].innerHTML;

date.Name = tr.childNodes[1].innerHTML;

date.Age  = tr.childNodes[2].innerHTML;

date.Sex  = tr.childNodes[3].innerHTML;

date.Like = tr.childNodes[4].innerHTML;

//将table表对象转换成数组装成json放在数组里

dataArray.push(JSON.stringify(date));

}

                //将数组装成json放在数组里

document.getElementById('JSONText').value = dataArray.toString();

myform.submit();

}

</script>

</body>

</html>


思  路:将table里的值取出,放在json中,赋给一个input,通过一个input来实现table表数据提交到服务器,就可以避免页面存在太多input框。

关键点: 

    1. rows/childNodes 获取某元素下的所有子节点;

    2. JSON.stringify(?) 将对象转为json数据;

    3. dataArray.toString() 将数组转换成json。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章