개발새발

[script] checkbox value값 db저장 후 출력 본문

[YOGOJOGO]

[script] checkbox value값 db저장 후 출력

재래김유진 2020. 10. 30. 15:48
728x90
반응형

체크박스의 기본적인 기능은 체크박스에 체크하면 'Y'의 값이 들어가고 

체크하지 않는다면 'N'의 값으로 들어갑니다. 

 

물론, 수정을 할때도 마찬가지겠지요

 

 <td class="sCate"> 
    <input type="checkbox" name="checkYn" id="checkYn" onchange="YnCheck(this);"><label for="checkYn">췍박스</label> 
 </td>

: 먼저, jsp에 체크박스를 만들어주고 Y 또는 N의 값을 넣어주기 위해 onchange 함수를 걸어줍니다.

 

 <script type="text/javascript">

 function YnCheck(obj) {

    var checked = obj.checked;

    if(checked){

       obj.value = "Y";

    }else{

       obj.value = "N";

    }

 };

 </script>

: 그럼 script에 있는 YnCheck함수를 실행시킵니다. 

매개변수로 obj를 가져와서 obj.checked면 value에 Y를 넣어주고 아니면 N을 넣어줍니다.

 

그리고 난 후 보통 데이터들을 넣어주는 방법으로 db에 insert 시키면 함수에서 넣어줬던 value의 값이

들어가겠지요? 

 

 

 

자, 그럼 db에 insert 된 checkbox의 값을 어떻게 가져오느냐,

쿼리에서 가져온 값을 변수에 담아준 뒤 

그 변수의 값이 Y이면 아이디가 id값에 해당하는 checkbox태그에 체크를 해주는 속성을 넣어줍니다. 

 

 var checkYn= "${data.checkYn}";

 if(checkYn== "Y"){

 $("#checkYn").prop("checked",true);

 }else{
 $("#checkYn").prop("checked",false);
 }

 

 

 

자, 끝난줄알았지만,

 

 

 

이렇게 만들면 onchange를 걸어놨기 때문에 만약, 상세페이지에서 체크박스 수정 없이 저장 할 경우

checkYn에 on이라는 값이 들어간다. 

 

따라서, onchange 없이 checkbox에 값 넣는 법.

 

.is(':checked')를 쓰면 화면에서 checkbox의 check 유무를 true or false로 판단할 수 있다. 

따라서, true이면 Y, false이면 N을 checkYn에 넣어준다. 

 

 //체크박스 value값 설정 

 if($("#checkYn").is(':checked') == true){

    data.set("checkYn", "Y");

 }else{

    data.set("checkYn", "N");

 }

 

화면에서 checkYn값에 따라 체크여부 출력하는 방법은 위와 같다. 

728x90
반응형
Comments