1. 程式人生 > >JQ table 資料 轉 json

JQ table 資料 轉 json


<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery.min.js" ></script>
	</head>
	<body>
		<table id='table'>
		<thead>
			<tr>
				<th cc="gid">第一列</th>
				<th cc="code">第二列</th>
				<th cc="name">第三列</th>
				<th cc="sex">性別</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td><input type="text" cc value="gid1"></td>
				<td><input type="text" cc value="code1"></td>
				<td><input type="text" cc value="name1"></td>
				<td><input type="radio" rc name="sex1" checked value="1">男<input name="sex1" type="radio" value="0">女</td>
			</tr>
			<tr>
				<td><input type="text" cc value=""></td>
				<td><input type="text" cc value=""></td>
				<td><input type="text" cc value=""></td>
				<td><input type="radio" rc name="sex2" checked value="1">男<input name="sex2" type="radio" value="0">女</td>
			</tr>
			<tr>
				<td><input type="text" cc value="gid3"></td>
				<td><input type="text" cc value="code3"></td>
				<td><input type="text" cc value="name3"></td>
				<td><input type="radio" rc name="sex3" checked value="1">男<input name="sex3" type="radio" value="0">女</td>
			</tr>
			<tr>
				<td><input type="text" cc value="gid4"></td>
				<td><input type="text" cc value="code4"></td>
				<td><input type="text" cc value="name4"></td>
				<td><input type="radio" rc name="sex4" checked value="1">男<input name="sex4" type="radio" value="0">女</td>
			</tr>
		</tbody>
	</table>
	<button onclick="test()">TEST</button>
<script>
		
		/*
		 * tableid: table 的 id
		 * data_attr : 要獲取文字框加的 屬性名,th 下,表示key 值
		 * radio_attr : 要獲取 單選按鈕 加的屬性名 ,沒有單選按鈕可以隨便填寫
		 * radio_name : 單選按鈕 的 name 值 
		 */
		function tableToJSON(tableid,data_attr,radio_attr,radio_name){
		var jsondata=[];
		var jsonkey=[]; 
		$("#"+tableid+" thead tr th").each(function(i,obj){
			jsonkey.push($("#table thead tr th").eq(i).attr(data_attr));
		});
		$("#"+tableid+" tbody tr").each(function(i,obj){
		var objectdata = {};
			$(obj).find("td").each(function(i2,obj2){
				if($(obj2).find("["+data_attr+"]").length!=0){
				objectdata[jsonkey[i2]]=$(obj2).find("["+data_attr+"]").val();
				}else if($(obj2).find("["+radio_attr+"]").length!=0){
				objectdata[jsonkey[i2]]=$("input[name='"+radio_name+""+(i+1)+"']:checked").val();
				}
			});
		jsondata.push(objectdata);
		});
		console.log(JSON.stringify(jsondata));
		return JSON.stringify(jsondata);
		}
		
		function test(){
			alert(tableToJSON("table","cc","rc","sex"));
		}
		
	</script>

</body>
</html>