알아보자
2k
2021-07-17 16:19:21
3
157

테이블 수정 시 수정한 것들만 업데이트


자바스크립트에서 table 에서 10개의 tr 이 있고 한 tr 안에 여러 개의 td 가 있을 경우

일부만 수정할 경우 예를 들어 2번째 tr, 4번째 tr 의 데이터를 수정한다고 할 경우 나중에 컨트롤러로 데이터를 보낼 때

전부 다 보내는게 아니라 2번째, 4번째 tr 의 데이터들만 보낼려고 합니다.

hidden 값을 줘서 처리하라고 하는데 어떤 식으로 작업하라는 말일까요? 비슷한 예제라도 있을까요?

0
  • 답변 3

  • JH Ls
    294
    2021-07-19 10:16:51 작성 2021-07-19 10:17:34 수정됨

    form을 하나더 생성한뒤에 기존과 동일한 name의 input을 전부 hidden으로 넣고,


    각각의 input이 있는 tr안에 <input type="hidden" class="isReg" value="false">

    이런 식으로 만들어 수정 여부를 체킹할 히든 input을 생성합니다.

     

    이후, 수정 할 수 있는 input에 onchange를 걸고, 

    onchange가 작동되면 this.parent().find를 통해 저 hidden input을 구해온 뒤, 해당 값을 true로 변경합니다.


    이후 전송할 때, isReg가 true인 부분을 each로 돌려서, 마찬가지로 this.parent().find를 통해 해당부분에 있는 input값을 가져와, 그 input과 이름이 같은 것을 저 새로 생성한 form에 넣습니다.


    이를 반복해서 수정된 데이터만 저 새로운 form에 담은후, 새로운 form을 전송, 

    백엔드에서 값이 '' 이거나 null인 경우를 if test로 걸어서 제외시키면 종료

    라는 뜻인 것 같습니다. 

  • JH Ls
    294
    2021-07-19 10:21:23
    이것이 너무 번거롭다면, 차라리 저 hidden을 같이 전송한 뒤, for문을 통해 저 hidden값에 해당하는 부분이 true인지 체크, true라면 새로 dto나 Map을 만든 후 값을 담고, false라면 값을 담지 않은 뒤, 이렇게 만들어진 새로운 dto나 map을 전송하는 방법도 있습니다. 
  • 알아보자
    2k
    2021-07-19 15:14:44
    답변 감사합니다
  • 로그인을 하시면 답변을 등록할 수 있습니다.