WebDevelop/JavaScript2008. 6. 4. 15:45
가끔씩보다 보면은 게시판이라던가 주문내역이라던가 하는부분에
전체선택 이라는 기능이 있는것을 본적이 있을것이다.

꽤나 쓸만한 이 기능.. 지금 만들어봅시다~


<HTML>

 <HEAD>
  <TITLE> checkbox 전체선택 </TITLE>
 </HEAD>
<script type="text/javascript">
function doCheckAll(all) {
    var obj = document.getElementsByName("chkTest");
    var val = true;
    if( all.checked == false ) {        // 값이 체크가 안되어져있으면
        val = false;                            // 전체선택을 해제 하게..
    }
    for (var i =0 ; i < obj.length ; i++ ) {
        obj[i].checked = val;
    }
}
</script>
 <BODY>
    <input type="checkbox" name="chkAll" onclick="doCheckAll(this);"> 전체선택 <br />
    <input type="checkbox" name="chkTest" value="1"> 1번 <br />
    <input type="checkbox" name="chkTest" value="2"> 2번 <br />
    <input type="checkbox" name="chkTest" value="3"> 3번 <br />
    <input type="checkbox" name="chkTest" value="4"> 4번 <br />
    <input type="checkbox" name="chkTest" value="5"> 5번 <br />
    <input type="checkbox" name="chkTest" value="6"> 6번 <br />
    <input type="checkbox" name="chkTest" value="7"> 7번 <br />
    <input type="checkbox" name="chkTest" value="8"> 8번 <br />
    <input type="checkbox" name="chkTest" value="9"> 9번 <br />
    <input type="checkbox" name="chkTest" value="10"> 10번 <br />
 </BODY>
</HTML>



이렇게 테스트 코드를 만들어 보았습니다.
음 이건 약간 응용이라고 할 수 있는거죠. 체크박스 하나만 선택되는 것을 배우면서
getElementsByName() 을 써보았으니까요 ^^

실제 응용하게된다면.. 체크된값들만 사용해서 해당되는 value 값의 내용을
DB에 update, delete 할 수도 있겠죠? ^^

Posted by 햇 님
WebDevelop/JavaScript2008. 6. 3. 11:18
오늘 업무요청을 받으며 라디오버튼을 체크박스로
변경해달라는 요청을 받았다.
라디오버튼은 이름이 같으면 그중에 하나만 선택되는데..
체크박스는 그렇지 않고 다중 선택이 되는 까닭에..
그냥 바꾸어주면 프로그램상 상당한문제이기도 하고..
업무 요청한곳에서도 다중선택의 문제라기보다는

라디오버튼은 한번 선택하면 그 중에 한가지를 택해야하니..
체크박스로 아무것도 선택 안하는 경우를 염두한거 같다..

서문이 길었는데.. 간단하게 자바스크립트 이벤트를 걸어주었다.

function doOpenCheck(chk){
    var obj = document.getElementsByName("aaa");
    for(var i=0; i<obj.length; i++){
        if(obj[i] != chk){
            obj[i].checked = false;
        }
    }
}

그리고 체크박스에는 onclick 이벤트를 걸어주면 되겠다.

<input name="aaa" type="checkbox" value="1" onclick="doOpenCheck(this);">aaa <br />
<input name="aaa" type="checkbox" value="2" onclick="doOpenCheck(this);">bbb <br />
<input name="aaa" type="checkbox" value="3" onclick="doOpenCheck(this);">ccc <br />


'this'
를 넘겨주어서 클릭되어진 객체의 값을 넘겨주고 'aaa' 로 값을 가져온것과 비교 하면서
클릭된 객체와 일치 하지 않는것들은 체크를 해제해주면 되겠다.


Posted by 햇 님
Database/Oracle2008. 5. 29. 15:27
오늘 소스분석을 하면서 TRUNC() 함수를 보게 되었다.

truncate 의 줄임말인듯하다.
뜻은 절삭? 이라고 해야하나... 사전의 뒤져보는 치밀함까지는 나에게 없다;
대충 짐작하기에 절삭.. 혹은 내림? 정도로 생각하려고 한다.

SELECT SYSDATE FROM DUAL;

위 문장을 실행해보면 현재 날짜를 출력하여준다.

사용자 삽입 이미지


SYSDATE 는 DATE 형식으로 날짜를 출력해주는데..

TRUNC() 함수는 날짜 형식 또한 잘라낼수 있다.
내가 아는 바에 의하면 숫자와 날짜에 한해서만 동작하는것으로 알고 있다.

그럼 TRUNC() 함수를 사용해서 현재날짜를 절삭해보면..

SELECT TRUNC(SYSDATE) FROM DUAL;


위의 문장을 실행하면 된다.
결과값은

사용자 삽입 이미지

자동으로 오늘 날짜에서 시간이 떨어져 나가고 년-월-일 의 값으로 나온다.
조금더 명시적으로 표현해주자면 아래와 같이 써주어도 된다.

SELECT TRUNC(SYSDATE , 'DD') FROM DUAL;

위의 SQL 명령도 같은 결과값을 가진다.


그럼 이어서 여기에 날짜를 더하거나 빼거나 하고.. 절삭한후에 시간을 지정해주는 부분을 보자
조금 더 살펴봐야 알겠지만.. 너무나 쉽게도.. 그냥 더하고 빼면 된다 -_-;

SELECT TRUNC(SYSDATE+1) FROM DUAL;

위의 문장을 실행하게되면..

사용자 삽입 이미지

위의 결과값인 2008-05-29 에서 하루가 추가되는것을 볼 수 있습니다.
같은 방식으로 7을 더하면 일주일 후의 날짜가 나오겠죠?


SELECT TRUNC(SYSDATE+1)+1/24 FROM DUAL;

이번에 SQL 문을 실행하면 절삭하였던 시간을 다시 붙여줄수 있습니다.

사용자 삽입 이미지
기본적이 구문을 시작으로 간단한 응용까지 해봤습니다.
좀더 응용해보면 시간아래에  분/초 도 달수 있겠죠?

Posted by 햇 님