2016-06-10 4 views
0

내 웹 사이트에 테이블 데이터를 저장하고 싶습니다. 테이블에는 n 행이 있으며 모든 행에는 m 열 (동적 테이블)이 있습니다. 모든 셀에는 입력이 있습니다. 그래서 우리는 n * m 입력을 가지고 있습니다.동적 테이블 입력 제출

JSON 형식으로 데이터를 저장하려면 어떻게해야합니까?

Example: 
|------------------|------------------|------------------| 
| {row-1,column-1} | {row-1,column-2} | {row-1,column-3} | 
|------------------|------------------|------------------| 
| {row-2,column-1} | {row-2,column-2} | {row-2,column-3} | 
|------------------|------------------|------------------| 
| {row-3,column-1} | {row-3,column-2} | {row-3,column-3} | 
|------------------|------------------|------------------| 
| {row-4,column-1} | {row-4,column-2} | {row-4,column-3} | 
|------------------|------------------|------------------| 

저장된 데이터 :

JSON Object: 
[ 
    [ {"row-1,column-1"},{"row-1,column-2"},{"row-1,column-3"} ], // row 1 
    [ {"row-2,column-1"},{"row-2,column-2"},{"row-2,column-3"} ], // row 2 
    [ {"row-3,column-1"},{"row-3,column-2"},{"row-3,column-3"} ], // row 3 
    [ {"row-4,column-1"},{"row-4,column-2"},{"row-4,column-3"} ] // row 4 
] 

jQuery 솔루션이나 plugin이 있습니까?

+0

왜 JSON해야합니까? 배열 스타일의 입력 이름을 사용하면 서버는 매개 변수로 배열을 만듭니다. – Barmar

+0

@ user191183 그것은 그것이 당신의 목적입니까? – Mohammad

+0

@ user191183 내 대답이 도움이된다면이 토론을 마친 것으로 표시하십시오. – Mohammad

답변

0

먼저 each을 사용하여 모든 tr을 얻고 그 중 each()을 사용하여 행의 이벤트 td을 가져옵니다. 그런 다음 모든 td의 텍스트를 개체에 추가하십시오. 끝에서 객체를 json으로 변환합니다.

var obj = []; 
 
$("table tr").each(function(index){ 
 
    obj[index] = []; 
 
    $(this).find("td").each(function(index2){ 
 
     obj[index][index2] = [$(this).text()]; 
 
    }); 
 
}); 
 
var json = JSON.stringify(obj); 
 
console.log(json);
table, tr, td { 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
     <td>Row1-Column1</td> 
 
     <td>Row1-Column2</td> 
 
     <td>Row1-Column3</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row2-Column1</td> 
 
     <td>Row2-Column2</td> 
 
     <td>Row2-Column3</td> 
 
    </tr> 
 
    <tr> 
 
     <td>Row3-Column1</td> 
 
     <td>Row3-Column2</td> 
 
     <td>Row3-Column3</td> 
 
    </tr> 
 
</table>