jQuey 로 css 변경

2015. 1. 6. 19:00

//나의현황 마우스 오버 아웃 처리

$("#MY_PRSEN_CONDI tr td").mouseenter(function(){

if($(this).text().trim()!='0건'&&$(this).text().trim()!='0원'){

$(this).css('background-color', '#05abe0');

$(this).css( 'cursor', 'pointer' );

}

});

$("#MY_PRSEN_CONDI tr td").mouseleave(function(){

if($(this).text().trim()!='0건'&&$(this).text().trim()!='0원'){

$(this).css('background-color', '#FFFFFF');

$(this).css( 'cursor', 'none' );

}

});

Posted by 사라링

jQuery에서는 사용자가 발생시키는 이벤트를 쉽고, 간단하게 핸들링 할 수 있는 메소드를 지원하고 있습니다. 마우스의 클릭과 키보드의 입력은 물론이고 심지어 더블클릭과 마우스 휠에 대한 이벤트를 쉽게 처리 할 수 있습니다.


jQuery에서 제공하는 이벤트 관련 메소드의 종류는 정말로 너무나 많습니다. 그 만큼 개발자가 많은 이벤트를 쉽게 이용할 수 있고 좀더 나은 UX를 만들 수 있다는 큰~ 장점이 있습니다. (일만 많아 지는 건가요?) 이번 시간에는 jQuery를 통해 이벤트를 어떻게 이용할 수 있는지에 대해 알아 보도록 하겠습니다.


이벤트 중에서 이번 시간을 통해 알아볼 내용은 사용자의 입력이나 브라우저의 상태가 변경되었을 경우 발생되는 이벤트 메서드 입니다.

 이벤트 종류(형식)

 이벤트 설명

 .blur()

 요소에서 포커스를 잃을 경우에 발생하는 이벤트 입니다.

 .change()

 <input />, <textarea />, <select /> 요소의 값 변경시 발생하는 이벤트 입니다.

 .click()

 마우스 클릭 시 발생하는 이벤트 입니다.

 .dblclick()

 마우스를 더블클릭 했을 경우 발생하는 이벤트 입니다.

 .focus()

 요소에 포커스 되었을 때 발생하는 이벤트 입니다.

 .hover()

 마우스가 요소 위에 위치했을 때 발생하는 이벤트 입니다.

 .keydown()

 키 입력 시 발생되는 이벤트이며, 모든 키에 대해 적용이 됩니다.

 .keypress()

 keydown 이벤트와 동일하게 키 입력 시 발생이 되지만 
 enter, tab등의 특수키에는 이벤트가 발생되지 않습니다.

 .keyup()

 키 입력 후 발생되는 이벤트 입니다.

 .mousedown()

 마우스 클릭 시 발생하는 이벤트입니다.

 .mouseenter()

 선택한 요소의 영역에 마우스가 위치했을 때 발생되는 이벤트 입니다.

 .mouseleave()

 선택한 요소의 영역에서 마우스가 벗어 났을 때 발생되는 이벤트 입니다.
 인터넷익스플로러에서만 발생되는 이벤트지만 jQuery는 브라우저 관계없이 
 사용할 수 있도록 시뮬레이터 됩니다.

 .mouseout()

 선택한 요소의 영역에서 마우스가 벗어 났을 때 발생되는 이벤트입니다.

 .mouseup()

 마우스 클릭 후 발생되는 이벤트입니다.

 .ready()

 DOM이 모두 준비 되었을 때 발생하는 이벤트입니다.

 .resize()

 resize 될 경우 발생하는 이벤트입니다.

 .scroll()

 HTML 문서가 스크롤 되었을 때 발생하는 이벤트입니다.

 .select()

 선택한 개체를 마우스를 통해 선택 하였을 때 발생하는 이벤트입니다.

 .submit()

 Submit이 일어날 때 발생하는 이벤트입니다. (Form 메서드 참고)

표 1. [jQuery Event 관련 메서드 종류]

 

우선 jQuery에서 지원하는 이벤트의 목록을 살펴 보면 정말(완전 대박!) 많은 이벤트를 지원하고 있는걸 확인 할 수 있습니다.

목록은 많으나 사용법이 대부분 동일하기 때문에 jQuery에서 지원하고 있는 이벤트가 이런 것이 있구나 하는 정도만 알아 두시면 됩니다.

이벤트 중에서 가장 많이 사용하는 마우스 클릭에 대한 예제를 통해 HTML 요소에 이벤트를 어떻게 할당하고, 처리하는지 알아 보도록 하겠습니다.

 

예제를 진행하기 전에 예전 웹 프로그램 개발 시에는 HTML과 자바스크립트를 혼용(흔히 말하는 스파게티)하여 사용을 하였으나, 웹 표준이 자리를 잡고 코드 분리를 통한 유지보수 반복적인 패턴의 코드중복을 피하기 위해 스크립트를 통해 HTML 요소와 이벤트를 맵핑하는 방식으로 개발을 하고 있습니다.

 

이전방식

<script type="text/javascript">
    function tdClick(obj) {
        alert(obj);
    }        
</script>

<tr>
    <td onclick="tdClick('1');">#1</td><td>#2</td><td>#3</td><td>#4</td><td>#5</td>
</tr>
<tr>
    <td onclick="tdClick('6');">#6</td><td>#7</td><td>#8</td><td>#9</td><td>#10</td>
</tr>

[필요한 함수를 만들고, 해당 이벤트가 필요한 요소에 일일이 적용]

 

추천방식

<script type="text/javascript">
    $(document).ready(function () {
        $("td").click(function () {
            alert($(this).text());
        });
    });
</script>
<tr>
    <td>#1</td><td>#2</td><td>#3</td><td>#4</td><td>#5</td>
</tr>
<tr>
    <td>#6</td><td>#7</td><td>#8</td><td>#9</td><td>#10</td>
</tr>

[HTML 요소에는 아무런 작업을 하지 않았다.]

 

처음에는 어색하고 오히려 불편하다고 느낄 수 있으나, HTML에서 사용하는 이벤트가 많아지고 동적으로 이벤트와 HTML의 요소를 맵핑하는 기능 구현 시에는 정말 없어서는 안돼는 흔히 말하는 막노동을 깔끔하게 해결하는 최고의 방법입니다.

 

 

 

.click()

event_01_001.jpg

 

마우스 클릭 시 동작하는 이벤트로 선택한 객체에 마우스 클릭 이벤트가 발생할 경우 해당 정의한 메서드가 실행 되며,  인자 값으로는 eventData로 이벤트에 대한 데이터 값이 전달이 됩니다.


$(“div”).click(function() { alert(‘click’); } 이라고 정의 할 경우 HTML 문서에 존재하는 모든 DIV 요소에 “click” 이벤트를 할당하고, 정의한 메서드의 결과인 alert(‘click’);을 실행하게 됩니다.


다음 예제를 통해 자세히 알아 보도록 하겠습니다.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery</title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />    
    <style>
        div,pre { background : #FFF; padding:10px; margin:10px; }
        table { border:1px solid #AAA; }
        td { border:1px solid #AAA; width:25px; height:25px; }
        .selected { font-weight:bold; color:White; background-color : Red;}        
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("td").click(function () {
                alert($(this).text());
            });
        });
    </script>
</head>
<body style="padding:10px;">
    <h2>jQuery 시작 Selector</h2>
    <p>jQuery에 대한 자세한 내용을 보려면 jquery.com 을 방문하세요.</p>
    <div>
    <table>
        <tr>
            <td>#1</td><td>#2</td><td>#3</td><td>#4</td><td>#5</td>
        </tr>
        <tr>
            <td>#6</td><td>#7</td><td>#8</td><td>#9</td><td>#10</td>
        </tr>
        <tr>
            <td>#11</td><td>#12</td><td>#13</td><td>#14</td><td>#15</td>
        </tr>
        <tr>
            <td>#16</td><td>#17</td><td>#18</td><td>#19</td><td>#20</td>
        </tr>
        <tr>
            <td>#21</td><td>#22</td><td>#23</td><td>#24</td><td>#25</td>
        </tr>        
    </table>
    </div>
</body>
</html>

 

event_01_002.jpg

 

클릭 이벤트가 필요한 요소를 셀렉터를 통해 선택하고, 선택된 모든 개체에 일괄적으로 이벤트를 할당합니다.

이런 패턴의 개발은 코드의 양을 줄이고, 관련 메서드를 수정할 때 번거로움이 확~ 줄어 든다는 이점이 있습니다. 또한 클라이언트로 전송되는 데이터도 적어지기 때문에 트래픽에 대한 부담도 많이 줄일 수 있습니다.(한국과 같은 인터넷 환경은 크게 문제가 되지 않지만 3G를 이용하는 모바일 기기, 인터넷 여건이 좋지 않은 지역에서는 큰 효과를 얻을 수 있습니다.)

 

웹에서 흔히 사용이 되지는 않지만 jQuery를 통해서 쉽게 구현이 가능한 마우스 더블클릭을 이용하고 싶다면, 위의 예제에서 .click() 메서드를 .dblclick()으로 변경만 하면 아무런 문제없이 사용이 가능합니다.

 

<script type="text/javascript">
    $(document).ready(function () {
        $("td").dblclick(function () {
            alert($(this).text());
        });
    });
</script>

 

대부분의 이벤트 관련 메서드는 이처럼 관련 메서드 이름만 다를 뿐 사용하는 방법에 대한 차이가 거의 존재 하지 않습니다.
마지막으로 키보드 입력 시 키보드의 값을 알아내는 예제를 통해 eventData의 간단한 사용법을 알아 보도록 하겠습니다.

 

event_01_003.jpg

 

.keydown() 이벤트를 사용하는 이유는 엔터키와 같은 특수 입력키에 대한 내용도 체크하기 위함이며, 특수키에 대한 값이 필요 없을 경우에는 .keypress() 를 사용하시면 됩니다.

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>jQuery</title>
    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />    
    <style>
        div,pre { background : #FFF; padding:10px; margin:10px; }
        table { border:1px solid #AAA; }
        td { border:1px solid #AAA; width:25px; height:25px; }
        .selected { font-weight:bold; color:White; background-color : Red;}        
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#txtInput").keydown(function (e) {
                $("#txtKeyCode").val(e.keyCode);
            });
        });
    </script>
</head>
<body style="padding:10px;">
    <h2>jQuery 시작 Selector</h2>
    <p>jQuery에 대한 자세한 내용을 보려면 jquery.com 을 방문하세요.</p>
    <div>
        <input type="text" id="txtInput" /> </br />
        <input type="text" id="txtKeyCode" />
    </div>
</body>
</html>

 

event_01_005.jpg

 

 

입력되는 키에 따른 해당 “keyCode”값이 노출되는걸 확인 할 수 있으며, “Enter”, “Ctrl”, “Shift”등의 특수 키보드의 값도 확인 할 수 있습니다. 앞서 말씀 드린 봐와 같이 jQuery에서 지원하고 있는 이벤트 관련 메서드의 종류는 상당히 많은 편이나, 이번 강좌에서 예제로 보여드린 부분만 이해를 하신다면 다른 이벤트 관련 메서드를 사용하시는데 큰 문제가 없을 것으로 생각이 됩니다.

 

 

참고자료 및 참고링크
jQuery Events

http://api.jquery.com/category/events/


출처 : http://www.sqler.com/390796



Posted by 사라링

$(window).load(function(){


$.fn.selectRange = function(start, end) {

   return this.each(function() {

        if(this.setSelectionRange) {

            this.focus();

            this.setSelectionRange(start, end);

        } else if(this.createTextRange) {

            var range = this.createTextRange();

            range.collapse(true);

            range.moveEnd('character', end);

            range.moveStart('character', start);

            range.select();

        }

    });

}; 

 $('#keyword').selectRange(1,50);

}) ;

// use like this   



일반적으로 선택만 할 경우 start 와 end 값을 동일 하게 셋팅 하면됨 . 


반드시 input 박스만 되는것은 아니며 id 나 네임값을 유동적으로 셋팅 하여 최초 화면 호출시 focus 를 유동적으로 셋팅 할수 있음으로 활용도가 높음. 








Posted by 사라링

여러줄을 한줄로 표현

2014. 11. 10. 11:00

with tb as 

select '1111' docno, 1 seqno, 1 prot, 'AAAA' empno from dual union all 
select '1111' , 1 , 2 , 'BBBB' from dual union all 
select '5555' , 3 , 1 , 'KKKK' from dual union all 
select '5555' , 3 , 2 , 'MMMM' from dual union all 
select '5555' , 3 , 3 , 'PPPP' from dual 

select a.docno 
, a.seqno 
, substr(max(sys_connect_by_path(empno,',')),2) as empno 
from ( 
select docno 
, seqno 
, empno 
, row_number() over(partition by docno 
, seqno 
order by rownum) as rn 
from tb) a 
start with rn = 1 
connect by prior rn = rn-1 
and prior docno = docno 
and prior seqno = seqno 
group by docno 
, seqno 
order by docno 
;


/



Posted by 사라링

### Lock 확인 쿼리 

SELECT do.object_name, do.owner, do.object_type,do.owner, vo.xidusn, vo.session_id, 

vo.locked_mode 

FROM v$locked_object vo , dba_objects do 

WHERE vo.object_id = do.object_id ; 


####  어떤 object에 어떤 lock이 걸렸는지 확인 

SELECT  T1.object_name, DECODE(locked_mode, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE',  4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') lock_mode 

FROM  dba_objects T1, v$locked_object T2 

WHERE T1.object_id = T2.object_id; 


#### session 확인 

select * from v$session where status = 'ACTIVE' 


#### cursor 확인 

v$open_cursor 


#### 테이블의 lock 확인 

SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAME 

FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C 

WHERE A.SID=B.SID 

AND B.ID1=C.OBJECT_ID 

AND B.TYPE='TM' 

AND C.OBJECT_NAME IN ('<테이블이름>'); 


/******************************************************************************* 

* LOCK 관련 

*******************************************************************************/ 

--V$LOCK 을 사용한 잠금 경합 모니터링 

SELECT s.username, s.sid, s.serial#, s.logon_time, 

  DECODE(l.type, 'TM', 'TABLE LOCK', 

        'TX', 'ROW LOCK', 

      NULL) "LOCK LEVEL", 

  o.owner, o.object_name, o.object_type 

FROM v$session s, v$lock l, dba_objects o 

WHERE s.sid = l.sid 

AND o.object_id = l.id1 

AND s.username IS NOT NULL    


--락이 걸린 세션 자세히 알아보기 

select a.sid, a.serial#,a.username,a.process,b.object_name, 

decode(c.lmode,2,'RS',3,'RX',4,'S',5,'SRX',8,'X','NO') "TABLE LOCK", 

decode (a.command,2,'INSERT',3,'SELECT',6,'UPDATE',7,'DELETE',12,'DROP TABLE',26,'LOCK TABLE','UNknown') "SQL", 

decode(a.lockwait, NULL,'NO wait','Wait') "STATUS" 

from v$session a,dba_objects b, v$lock c 

where a.sid=c.sid and b.object_id=c.id1 

and c.type='TM' 


--락이 걸린 세션 간단히 알아보기 

select a.sid, a.serial#, b.type, c.object_name, a.program, a.lockwait, 

      a.logon_time, a.process, a.osuser, a.terminal 

from v$session a, v$lock b, dba_objects c 

where a.sid = b.sid 

  and b.id1 = c.object_id 

  and b.type = 'TM'; 


select a.sid, a.serial#, a.username, a.process, b.object_name 

from v$session a , dba_objects b, v$lock c 

where a.sid=c.sid and b.object_id = c.id1 

and c.type = 'TM' 


--락이 걸린 세션을 찾아 내어 세션을 죽이려고 해도 죽지 않는 경우 

--아래 쿼리문으로 OS단의 PROCESS ID를 찾아내어 OS에서 죽인다 

--kill -9 프로세스아이디 

select substr(s.username,1,11) "ORACLE USER", p.pid "PROCESS ID", 

s.sid "SESSION ID", s.serial#, osuser "OS USER", 

p.spid "PROC SPID",s.process "SESS SPID", s.lockwait "LOCK WAIT" 

from v$process p, v$session s, v$access a 

where a.sid=s.sid and 

p.addr=s.paddr and 

s.username != 'SYS' 


--위 쿼리문의 결과가 있다면 락이 걸린 세션이 있다는것이므로 아래의 쿼리문으로 세션을 죽인다 

ALTER SYSTEM KILL SESSION '11,39061' 



Posted by 사라링

with t as

(

select '123/43356/789' author from dual

)

SELECT AUTHOR FROM

(

    SELECT DISTINCT rn, LEVEL, 

    SUBSTR (author, INSTR (author, base, 1, LEVEL) + len, INSTR (author, base, 1, LEVEL + 1) - INSTR (author, base, 1, LEVEL) - len ) author FROM 

    (

        SELECT ROWNUM rn, '/' base, '/' || author || '/' author, LENGTH ('/') len FROM t

    )

    CONNECT BY LEVEL <= (LENGTH (author) - LENGTH (REPLACE (author, base))) / len - 1

)

Posted by 사라링


사이트 주소는 

w3schools




Script 선언및 $ 작성후 Submit 을 하면 오른쪽 화면에 일반 브라우져 에서 나오는 결과를 즉시 확인 가능 하다.



Posted by 사라링

프로젝트 서버 이전중에 문제가 발생 했다.

로컬호스트 에서는 문제가 없었으나 . 서버 테스트 과정에서 리터럴 형식이 잘못 되었다는 에러 메세지와 함께

제대로 검색이 되지 않았다.

(수정 : 확인결과 서버에서 받는 문자 형식의 리터럴 방식이 일관 되지 않게 된 경우 발생 함. 따라서 모든 데이터 타입 변경시 

되도록이면 

TO_CHAR(컬럼) , 

TO_DATE(컬럼) 이런식으로 쓸것이 아니라 반드시 그 변환 형식을 남기도록 해야 하며 예를 들자면 'YYYYMMDD'

같은 형식을 넣어야만 한다. )

 

TO_DATE(A.DT_FR)

 

이런 형식을 모두

 

TO_DATE(A.DT_FR,"YYYYMMDD")

 

로 바꾸어야만 한다.

 



F====>       TO_DATE ?\((.+?)\)


R====>      TO_DATE\($1,'YYYYMMDD')

 

이다.

 

예외사항 :     TO_DATE(MIN(VAT_DT)) 과 같은 경우 제한식을 ) 으로 두었기 때문에 수작업 해야 한다. 그냥 바꾸면

TO_DATE(MIN(VAT_DT,'YYYYMMDD')) 라 바뀌게 되는데 이 것은 X

TO_DATE(MIN(VAT_DT),'YYYYMMDD') 로 바꿔야 O . 이는 대도록 정규식을 피해야 할것 같다. 정규식을 좀더 수정 하면 될것도 같긴 한데 일단. ; 걍 수업.


추가 . 

TO_DATE(SYSDATE,'YYYYMMDD') 가 안먹힌다.. 지정된 월이 아니라는 에러 메세지만 배터 낸다. 좀 이해가 안되지만 어쩔수 없이 SYSDATE 에 TO_CHAR 을 적용 했더니 해결 되었다. 

TO_DATE(TO_CAHR(SYSDATE,'YYYYMMDD'),'YYYYMMDD') 로 변경.   



 

추신: 

컬럼 네임에 . 들어 가있는 경우도 있기 때문에 이미 바꿔져 있는 것의 경우 ,가 포함 되어 있다. 따라서 구분을 할수 없음으로

변환을 두번 하게 되면 'YYYYMMDD' 가 추가 되게 되니. 하나씩 find 해서 replace 해야 한다.




추가정규식

검색해 보고 맞는것을 사용토록 해야함 


TO_DATE\(?(.[^\,]+?)\)

TO_DATE($1,'YYYYMMDD')



1번째 --> F(find)

2번째 --> R(replace)


TO_DATE\(?(.[^\,]+?)\)


/



TO_CHARW(?(.[^\,]+?)\)

TO_CHAR($1,'YYYYMMDD')



1번째 --> F(find)

2번째 --> R(replace)



Posted by 사라링

TOAD를 사용하면서 편리하게 이용할 수 있는 단축키를 정리한 것입니다.

 

테이블 정보 상세보기

F4 : Table, View, Proc, Funct, Package DESC(테이블명 위에 커서를 두고 F4)

 

자동완성

Ctrl+. : Table Completion (매칭되는 테이블목록 출력)

Ctrl+T : Columns Dropdown (해당테이블의 컬럼목록 표시)

 

SQL문 실행

F5 : SQL Editor내의 모든 SQL문 실행

Ctrl+Enter : 현재 커서의 SQL문 실행

F9 : SQL문 실행 후 Grid에 출력

 

히스토리(과거 수행SQL문 조회)

F8 : 과거에 실행한SQL HISTORY 목록

Alt+Up : History UP

Alt+Down : History DOWN

 

텍스트 대/소문자 변환

CTRL+L : 텍스트를 소문자로

CTRL+U : 텍스트를 대문자로

 

주석처리

Ctrl+B : 주석처리

Ctrl+Shift+B : 주석해제

 

편집 창 전환(이동)

F6 : SQL Editor와 결과창간의 이동

F2 : SQL Editor창 전체화면 전환

Shift+F2 : Grid Output창 전체화면 전환

 

기타 단축키

F7 : 화면을 모두 CLEAR

Ctrl+Shift+F : 쿼리문을 보기좋게 정렬

Ctrl+F9 : SQL Validate (SQL문을 수행하지 않음)

F1
Toad 도움말 파일의 SQL Editor 부분이 표시됩니다.
F2
전체 화면 Editor Editor/Results 패널 표시 장치 사이를 전환합니다.
<SHIFT>F2
전체 화면 그리드를 전환합니다.
F3
다음으로 일치하는 것을 찾습니다.
<SHIFT>F3
이전에 일치하는 것을 찾습니다.
F4
팝업 창의 테이블프로시저함수또는 패키지를 설명합니다.
F5
스크립트로 실행합니다.
F6
커서를 Editor Results 패널 사이로 전환합니다.
F7
모든 텍스트를 지웁니다.
F8
이전 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).
F9
실행문을 실행합니다.
<CTRL>F9
실행(구문 분석없이 실행문을 검사합니다.
<SHIFT>F9
커서 위치에서 현재 실행문을 실행합니다.
F10
오른쪽 클릭 메뉴를 표시합니다.
F11
Script 같은  실행(=F5)
F12
편집기 내용을 지정된 외부 편집기로 전달합니다.
<CTRL>A
모든 텍스트를 선택합니다.
<CTRL>C
복사
<CTRL>D
프로시저 인수를 표시합니다.
<CTRL>E
현재 실행문에서 Explain Plan 실행합니다.
<CTRL>F
텍스트를 찾습니다(Find Text 창을 불러옵니다).
<CTRL>G
라인으로 이동합니다(Goto Line 창을 불러옵니다).
<CTRL>L
텍스트를 소문자로 변환합니다.
<CTRL>M
Make Code Statement
<CTRL>N
이름이 지정된 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).
<CTRL>O
텍스트 파일을 엽니다.
<CTRL>P
Strip Code Statement(쓸데없는 태그들을 정리해 줍니다. 유용함)
<CTRL>R
검색  바꾸기(Find and Replace Text 창을 불러옵니다)
<CTRL>S
파일을 저장합니다.

<SHIFT><CTRL>S
파일을 다른 이름으로 저장합니다.
<CTRL>T
 드롭다운을 표시합니다.
<CTRL>U
텍스트를 대문자로 변환합니다.
<CTRL>V
붙여넣기
<CTRL>X
잘라내기
<SHIFT><CTRL>Z
마지막으로 취소한 작업을 재실행합니다.
<ALT><UP>
이전 실행문을 표시합니다.
<ALT><DOWN>
다음 실행문을 표시합니다(<ALT><UP> 사용한  사용)
<ALT><PgUp>
이전 탭으로 이동
<ALT><PgDn>
다음 탭으로 이동
<CTRL><ALT><PgUp>
이전 결과 패널 탭으로 이동
<CTRL><ALT><PgDn>
다음 결과 패널 탭으로 이동
<CTRL><HOME>
데이터 그리드에서는  위의 레코드셋으로 이동하며결과 그리드에서는 커서가 위치한행의  번째 열로 이동하고편집기에서는 텍스트의  번째 열과  번째 행으로 이동합니다.
<CTRL><END>
데이터 그리드에서는 레코드셋의  끝으로 이동하며편집기에서는 텍스트의 마지막 열과 마지막 행으로 이동합니다 단원의 "주의" 참조하십시오.
<CTRL><SPACE>
코드 완성 템플릿을 활성화합니다.
<CTRL><TAB>
MDI Child 창의 콜렉션을 순환합니다.
<CTRL><ENTER>
커서 이치에서 현재 SQL 문을 실행합니다.
<CTRL>. (마침표)
테이블 이름을 자동으로 완성합니다.


Posted by 사라링

펌) immutable 이란

 | JAVA
2013. 10. 15. 14:30


Immutable이란 생성후 변경 불가한 객체입니다. 그래서 immutable에는 set 메쏘드가 없습니다. 멤버 변수를 변경할 수 없습니다. return type이 void인 메쏘드도 없습니다. 주로 void 메쏘드는 뭔가를 하고(하지 않을 수도 있고.. ) 멤버변수를 변경하는 역할을 하는 것이기 때문에 쓸 일이 거의 없습니다. (물론, 콘솔에 뭔가를 찍는 것과 같은 예외적인 void는 있을 수 있습니다.)

Immutable을 쓰면, 멀티 쓰레드 환경에서 좀 더 신뢰할 수 있는 코드를 만들어 내기가 쉽습니다. 멀티 쓰레드 프로그램을 짜보셨다면 아시겠지만, 멀테 쓰레드 환경에서는 에러보다 비정상적 작동의 경우가 많습니다. 에러도 아니기 때문에 찾아내기도 어렵습니다. 게다가 항상 생기는 것도 아니고 백번에 한번 천번에 한번 식으로 문제가 생겨 정말 머리 아픈 경우가 한 두번이 아닙니다.

Immutable을 쓰게 되면, 이런 요소들을 많이 줄일 수 있습니다.


대표적인 Immutable 클래스


String, Boolean, Integer, Float, Long 등등이 있습니다. 여기서 주의할 점은 변경불가라는 것은 heap 영역에서의 변경불가라는 뜻입니다. String a="a"; a="b"; 와 같이 재할당은 가능합니다. 이는 a가 reference하고 있는 heap 영역의 객체가 바뀌는 것이지 heap영역에 있는 값이 바뀌는 것이 아닙니다.


String vs StringBuffer


String과 StringBuffer에는 비슷한 메쏘드들이 많이 있어서 비슷해 보이지만, 결정적인 차이가 있습니다. String은 Immutable 입니다. StringBuffer는 아닙니다. StringBuffer가 String에 비해서 훨씬 빠르다는 얘기를 들어보셨나요? 그건 객체를 새로 생성할 필요가 없기 때문입니다. 


String에는 없고 StringBuffer에만 있는 대표적인 메쏘드는 append, delete 등일 겁니다. 멤버 변수를 변화시켜 값을 바꿀 수 있는 거죠. 그런데 잘 보며 이들의 리턴은 StringBuffer 타입입니다. 어차피 얘네도 객체를 새로 만들어낸다면, String과 별 차이가 없어보입니다. 그러나 객체를 새로 만들어 내는 것이 아닙니다. 

아래 코드를 실행시켜보세요.

StringBuffer b = new StringBuffer();

StringBuffer a = b.append("test");

System.out.println(a == b);

true가 나옵니다. 객체를 새로 만드는 것이 아니라 return this 로 되어있습니다. 굳이 리턴을 하는 이유는 아래와 같은 코딩을 가능하게 해주려는 것 같습니다.


StringBuffer test = new StringBuffer();

test.append("a").append("b").append("c").append("d");


와 같은 식으로 여러줄 코딩을 한 줄로 할 수 있게 해주려는 것 같습니다.. 아님 말구요.-_-;


Immutable의 유용성과 위험성


멀티쓰레드 환경에서 하나의 객체에 접근을 하는데 각각의 쓰레드끼리는 영향을 받으면 안 되는 경우가 있습니다. 그럴 때 한 번 만들어진 객체의 값이 변하지 않는다는 게 보장이 되면 편하겠죠.


String a  = "";

while(어떤 조건문){

    a += "머시기";

    if(딴 조건문){

        break;

    }

}


위와 같은 코드는 쓰면 안 됩니다. a+= "머시기" 구문이 문젭니다. 객체를 계속 생성해 냅니다. Immutable은 값이 계속 변경될 수 있는 곳에 쓰면 메모리 왕창 잡아먹습니다. 값이 완전히 정리된 후에 한 큐에 immutable로 만들어 내셔야 합니다. (물론, 가비지 컬레션이 돌면서 정리를 하기 때문에 치명적으로 위험한 수준의 행동은 아닙니다.)


java.util.Collections 에 unmodifiable머시기 하는 메쏘드들이 있습니다. 얘네들을 이용하면, Set, List, Map 등을 immutable로 사용할 수 있습니다. 다만, add, put과 같은 메쏘드를 호출할 경우에는 UnsupportedOperationException 가 발생합니다. 예외 상황을 고려해야 합니다.


Immutable은 보통 final 클래스로 정의합니다.


처음에 자바를 할 때 String이란 객체에 ltrim이란 메쏘드를 추가하고 싶었습니다. (왼쪽만 trim하는 메쏘듭니다.) 상속을 받아 새로운 클래스를 만들어 해결하려고 했습니다. 헛, 그런데 final로 정의가 되어있어서 상속을 받을 수가 없더군요. 

final로 정의가 되지 않으면, 상속을 받은 클래스가 Immutable을 깨버릴 수가 있기 때문입니다.


잘못된 Immutable의 구현


package immutable;


import java.text.SimpleDateFormat;

import java.util.Date;


public final class WrongImmutable {

    private final Date date;

    private final SimpleDateFormat dateFormat;

    public WrongImmutable(Date date){

        this.date = date;

        dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    }

    public String getMessage(){

        return dateFormat.format(date);

    }

}


위의 소스를 보세요. date라는 변수가 final로 정의 되어있으며, setter가 없어 오직 생성자에서만 값을 지정할 수 있는 것 같아보입니다. 그러나 아래와 같은 테스트 클래스를 실행시켜보시면, 위의 코드가 잘못되었음을 알 수 있습니다.


package immutable;


import java.util.Date;


public class WrongImmutableTest {

    public static void main(String[] args) {

        Date testDate = new Date();

        WrongImmutable wrongImmutable = new WrongImmutable(testDate);

        testDate.setTime(testDate.getTime() + 10000000);

        System.out.println(wrongImmutable.getMessage());

    }

}


WrongImmutable의 생성자에 인자로 넣은 Date를 외부에서 값을 변경시키면 WrongImmutable의 멤버 변수의 값이 변경이 되고 맙니다. Immutable에서는 멤버 변수가 외부로 공개되어 변경이 가능하면 안 됩니다. 

그럼 처음에 원했던 대로 정상적인 Immutable이 되도록 하려면 인자로 받은 Date 객체를 그대로 사용하는 것이 아니라, 어떤 식으로든 복사를 해서 써야 합니다. 생성자에서 멤버 변수의 값을 할당하는 부분을


this.date = new Date(date.getTime());

와 같이 바꿔야 합니다.


자바에 진짜 Immutable이란 건 없다!


java의 reflection을 이용하면 변경 가능합니다. 다음 코드를 실행시켜 보세요.


import java.lang.reflect.Field;


public class EditUsingReflection {

    public static void main(String[] args) throws IllegalArgumentException, SecurityException, IllegalAccessException, NoSuchFieldException {

        String s = "string!";

        edit(s);

        System.out.println(s);

    }

    public static void edit(String s) throws IllegalArgumentException, IllegalAccessException, SecurityException, NoSuchFieldException {

        Field stringValue = String.class.getDeclaredField("value");

        stringValue.setAccessible(true);

        stringValue.set(s, s.toUpperCase().toCharArray());

    }

}


String 객체는 내부적으로 value라는 이름의 char[]로 그 값을 관리합니다. 물론 private으로 선언되어있지요. 

reflection을 이용하면 멤버변수에 걸려있는 private을 무시하고 접근해 버릴 수가 있습니다. 결국 reflection을 이용하면 모든 멤버변수에 대한 수정이 가능합니다. Immutable이란 건 reflection을 제외시켜 놓고 생각할 때만 가능합니다.



출처 :  -- http://iilii.egloos.com/3809685

Posted by 사라링

주민번호는 많은데 .. 사업자 번호는 없어서. 만들어봄.. 


SELECT * FROM (

SELECT B.* ,DECODE(CHKSUM,0,DECODE(CHKSUM,B.B1,'Y','N'),DECODE(10-CHKSUM,B.B1,'Y','N')) AS CHK_YN  FROM 

 (SELECT A.* ,  MOD( A1*1+A2*3+A3*7+A4*1+A5*3+A6*7+A7*1+A8*3+A9*5+TRUNC((A9*5)/10,0) ,10)  AS CHKSUM

    FROM(

    SELECT  사업자번호

            ,SUBSTR(사업자번호 , 1, 1) A1

            ,SUBSTR(사업자번호 , 2, 1) A2

            ,SUBSTR(사업자번호 , 3, 1) A3

            ,SUBSTR(사업자번호 , 4, 1) A4

            ,SUBSTR(사업자번호 , 5, 1) A5

            ,SUBSTR(사업자번호 , 6, 1) A6

            ,SUBSTR(사업자번호 , 7, 1) A7

            ,SUBSTR(사업자번호 , 8, 1) A8

            ,SUBSTR(사업자번호 , 9, 1) A9

            ,SUBSTR(사업자번호 , 10, 1) B1  --유효성 체크자리 

    FROM    TMP_A_거래선

    )A) B)

   WHERE CHK_YN = 'N'


--  TMP_A_거래선 : 테이블 이름

     사업자번호 : 컬럼이름 

Posted by 사라링


실사용 컬럼

DECODE (

                INSTR (

                   TRANSLATE (A.은행코드, '1234567890', 'XXXXXXXXXX'),

                   'X'),1, LPAD (A.은행코드, 3, '0'),

                A.은행코드)

--  은행코드 004 -> 04로 들어 가 있으며 은행코드가 영문과 같이 있어 영문은 제외한 나머지를 004 로 바꾸려고 한다. 

///


SELECT DECODE (

                INSTR (

                   TRANSLATE (컬럼명, '1234567890', 'XXXXXXXXXX'),

                   'X'),1, 'Y',

                'N') AS CONFIRM

FROM 테이블명

WHERE CONFIRM  = 'Y'    -----  'Y'  이면 숫자. 

Posted by 사라링

var strValue = prodList.valueMatrix(nRow, prodList.colRef("PROD_DESC"));

strValue = strValue.replace("%","*0.01"); // %를 소수점으로 환산 처리

rplValue = strValue.replace(/[^\.0-9*\/\+\-\(\)\)\(]/g,""); // 계산을 위해 소숫점, 사칙연산자, 숫자, 괄호만 제외하고 모두 삭제

try{

amt = eval(rplValue);

prodList.valueMatrix(nRow, prodList.colRef("SUP_RQST_AMT")) = amt;

if(rplValue != ""){

연산함수();

}

}catch(e){

// error

}





eval 함수 [퍼옴]


"3+4"라는 문자열을 7이라는 값으로 계산해주는 함수로 알고 계신다고 하셨는데..
잘못된 지식입니다.

eval() 함수변수를 javascript의 함수처럼 쓰는 명령어 입니다.

즉.
str += "document.test.check"+i+".value";
위의 뜻은 변수명이 document.test.check1.value 형식으로 들어가는데...
이것을 함수처럼 쓸수는 없다는 뜻입니다.
그냥 저런 문자열이라는 뜻이죠.
결국  str을 alert시키면 document.test.check1.value이 출력되게 됩니다.

그리고
str += eval("document.test.check"+i+".value");
str에 함수이름들이 들어가 있는 겁니다.
그래서 alert를 시키면 value가 1이나 2가 찍히게 되는 것이지요.

두번째 것은 로직상의 문제는 없습니다만..
this.form이 실행될때와 document.test가 잘 실행될때가 있더군요..
문제점은 확실히 모르겠고요..

프로젝트 도중에도 그런 상황에 여러가지를 실행합니다.
 
 

eval() 기능함수는 Javascript 코드가 맞는가 틀린가를 검정하고 수행한다.

eval(jsString)
인수
eval() : (검정, 수행 기능함수)
필수적인 인수로 최상위 내장 기능함수이다.
jsString : (검정할 문자열)

선택적인 인수로 기능함수의 인수(argument)로 주어진 코드 문자열로 검정의 대상이 된다.

jsString은 선택적이기는 하지만, 없으면 값 "undefined"을 반환한다.

인수는 Javascript 코드가 아니고 문자열임에 주의하라.

설명

검정하는 순서는

  1. 제공된 jsString 문자열이 Javascript로 유효한가를 먼저 검정한다.
  2. Javascript 코드로서 해석하기 위하여 파싱(parse)한다.
  3. eval() 기능함수는 파싱된 내용에서 Javascript 문장 코드를 발견하면, 그 내용을 수행하고,
  4. 그 결과값이 있으면, 그 값을 반환한다(return).
특기

jsString은 Javascript 문장, 복수의 문장등이며 개체(object)의 변수와 속성(property)을 가질 수 있다.

문자열로 구성된 Javascript 문장을 직접 실행시키는데 유용하다.


'정규식' 카테고리의 다른 글

특수문자로 이어진 문자중 일부를 가져오는 정규식 쿼리  (0) 2022.06.27
정규식 .  (0) 2012.08.24
정규식 .  (0) 2012.08.24
이메일 정규식  (0) 2012.08.08
Posted by 사라링

UPPER(REPLACE(REPLACE(REPLACE(A.BYR_EMAIL,CHR(10),''),CHR(13),''),' ',''))


되도록 DB 의 정보를 넣을때 체크 하여 넣는게 좋으나 연동 으로 인해 힘들경우 직접 REPLACE 를 이용 하여 제거 . 

Posted by 사라링

주석 형식

2013. 7. 3. 14:50
클래스 명 

/**

 * 클래스명 : 

 * 설명 : 

 * 주요기능 : 

 * 작성자 : 

 * 작성일 : 

 * 수정내역

 * -홍길동 :

 * -내   역:

 */


메소드


/**

* @name 조회

* @param request

* @return IResponse

* @throws Exception

*/




/*

함 수 ID: doInit ()

기     능: 초기화

작 성 자: crespeed

작 성 일: 2013/07/01

*/




xml


<!-- 

ID :  getMst 

설명 :  카드

parameterClass : map

resultClass : hmap

-->


Posted by 사라링

List checkList = request.getGridCheckedList("listInfo");

for(Iterator all = checkList.iterator(); all.hasNext();){

Map gMap = (Map) all.next();

gMap.put("RQST_NO", rqstNo);

gMap.put("SESS_USER_ID", userId);

if ("I".equals(gMap.get("tmHeader"))){

createObject("pur.main.pur0010.saveDetail", gMap);

}else if("U".equals(gMap.get("tmHeader"))){

createObject("pur.main.pur0010.upDetail", gMap);

}else if("D".equals(gMap.get("tmHeader"))){

// 예산내역삭제

deleteObject("pur.main.pur0010.delBudg", gMap);

//품목내역삭제

createObject("pur.main.pur0010.delDetail", gMap);

}

}

Posted by 사라링

쿼리생성 하는 쿼리

2013. 5. 30. 17:13

WITH

TAB_COMMENTS_CAST AS (

        SELECT * 

          FROM USER_TAB_COMMENTS

         WHERE TABLE_NAME ='XXSB_DCT_SM_USER' --여기에 테이블 명을 입력하세요 접속한 USER 테이블만 가능

        ),

TAB_COLUMNS_CAST AS (

        SELECT A.COLUMN_NAME

             , A.COLUMN_ID

          FROM USER_TAB_COLUMNS     A

             , TAB_COMMENTS_CAST    B

         WHERE A.TABLE_NAME = B.TABLE_NAME

         ORDER BY A.COLUMN_ID

        ),

PK_COLUMNS_CAST AS (

        SELECT A.*

          FROM USER_IND_COLUMNS   A

             , USER_CONSTRAINTS   B

             , TAB_COMMENTS_CAST  C

         WHERE A.TABLE_NAME = B.TABLE_NAME

           AND A.INDEX_NAME  = B.CONSTRAINT_NAME

           AND B.CONSTRAINT_TYPE = 'P'

           AND A.TABLE_NAME = C.TABLE_NAME

         ORDER BY A.COLUMN_POSITION

                 

        )

  -------------

  --SELECT 시작

  -------------

  --SELECT COMMENTS || ' SELECT' FROM TAB_COMMENTS_CAST UNION ALL

  SELECT DECODE(ROWNUM, 1,'SELECT ','     ,')|| DECODE(SUBSTR(COLUMN_NAME, LENGTH(COLUMN_NAME)-1,2),'YN','DECODE('||COLUMN_NAME||',''1'',''1'',''0'') AS '||COLUMN_NAME, COLUMN_NAME)

    FROM TAB_COLUMNS_CAST 

   WHERE COLUMN_NAME NOT IN('INSERT_ID','INSERT_IP','INSERT_PGM','INSERT_DATE','UPDATE_ID','UPDATE_IP','UPDATE_PGM','UPDATE_DATE')

  UNION ALL

  SELECT '  FROM '||TABLE_NAME  FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT DECODE(A.COLUMN_POSITION, 1,' WHERE ','   AND ') || A.COLUMN_NAME || LPAD(' = ',B.MAXLEN-LENGTH(A.COLUMN_NAME),' ') || '#'|| A.COLUMN_NAME ||'#' 

    FROM PK_COLUMNS_CAST A

       , (

            SELECT MAX(LENGTH(COLUMN_NAME))+3 AS MAXLEN FROM PK_COLUMNS_CAST

         ) B

  UNION ALL SELECT '' FROM DUAL UNION ALL SELECT '' FROM DUAL 

  -------------

  --INSERT 시작

  -------------

  --UNION ALL SELECT COMMENTS || ' INSERT' FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT 'INSERT INTO '||TABLE_NAME FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT '(' FROM DUAL

  UNION ALL

  SELECT DECODE(COLUMN_ID, 1,'    ',',')|| COLUMN_NAME

    FROM TAB_COLUMNS_CAST

  UNION ALL

  SELECT ')' FROM DUAL

  UNION ALL

  SELECT 'VALUES' FROM DUAL

  UNION ALL

  SELECT '(' FROM DUAL

  UNION ALL

  SELECT DECODE(COLUMN_ID, 1,'    ','  ,')|| CASE WHEN COLUMN_NAME IN('INSERT_DATE','UPDATE_DATE') THEN 'SYSDATE' ELSE DECODE(SUBSTR(COLUMN_NAME, LENGTH(COLUMN_NAME)-1,2),'YN','DECODE('||'#'||COLUMN_NAME||'#'||',''1'',''1'',''2'')', '#'||COLUMN_NAME||'#') END

    FROM TAB_COLUMNS_CAST

  UNION ALL

  SELECT ')' FROM DUAL

  UNION ALL SELECT '' FROM DUAL UNION ALL SELECT '' FROM DUAL 

  -------------

  --UPDATE 시작

  -------------

  --UNION ALL SELECT COMMENTS || ' UPDATE' FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT 'UPDATE '||TABLE_NAME FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT DECODE(ROWNUM, 1,'   SET ',',') || A.COLUMN_NAME || LPAD(' = ', B.MAXLEN-LENGTH(A.COLUMN_NAME),' ')

        || DECODE(A.COLUMN_NAME,'UPDATE_DATE','SYSDATE',DECODE(SUBSTR(A.COLUMN_NAME, LENGTH(A.COLUMN_NAME)-1,2),'YN','DECODE(#'||A.COLUMN_NAME||'#,''1'',''1'',''2'')', '#'||A.COLUMN_NAME||'#') )

    FROM ( 

            SELECT A.COLUMN_NAME

              FROM TAB_COLUMNS_CAST  A

                 , PK_COLUMNS_CAST      B

             WHERE A.COLUMN_NAME = B.COLUMN_NAME(+)

               AND B.COLUMN_NAME IS NULL

               AND A.COLUMN_NAME NOT IN ('INSERT_ID','INSERT_IP','INSERT_PGM','INSERT_DATE')

             ORDER BY A.COLUMN_ID

          ) A

        ,(

            SELECT MAX(LENGTH(A.COLUMN_NAME))+3 AS MAXLEN

              FROM TAB_COLUMNS_CAST  A

                 , PK_COLUMNS_CAST   B

             WHERE A.COLUMN_NAME = B.COLUMN_NAME(+)

               AND B.COLUMN_NAME IS NULL

               AND A.COLUMN_NAME NOT IN ('INSERT_ID','INSERT_IP','INSERT_PGM','INSERT_DATE')

         ) B

  UNION ALL

  SELECT DECODE(A.COLUMN_POSITION, 1,' WHERE ','   AND ') || A.COLUMN_NAME || LPAD(' = ', B.MAXLEN-LENGTH(A.COLUMN_NAME),' ') || '#'|| A.COLUMN_NAME ||'#' 

    FROM PK_COLUMNS_CAST A

       , (

            SELECT MAX(LENGTH(COLUMN_NAME))+3 AS MAXLEN FROM PK_COLUMNS_CAST

         ) B

  UNION ALL SELECT '' FROM DUAL UNION ALL SELECT '' FROM DUAL 

  -------------

  --DELETE 시작

  -------------

  --UNION ALL SELECT COMMENTS || ' DELETE' FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT 'DELETE FROM '||TABLE_NAME FROM TAB_COMMENTS_CAST

  UNION ALL

  SELECT DECODE(A.COLUMN_POSITION, 1,' WHERE ','   AND ') || A.COLUMN_NAME || LPAD(' = ',B.MAXLEN-LENGTH(A.COLUMN_NAME),' ') || '#'|| A.COLUMN_NAME ||'#' 

    FROM PK_COLUMNS_CAST A

       , (

            SELECT MAX(LENGTH(COLUMN_NAME))+3 AS MAXLEN FROM PK_COLUMNS_CAST

         ) B



'오라클' 카테고리의 다른 글

오라클 쿼리로 사업자번호 유효성 검사  (0) 2013.09.25
컬럼 문자 인지 숫자인지 확인.  (0) 2013.09.25
list 의 특정 컬럼 을 한줄로 표현 하기 .  (0) 2013.05.10
jsp BLOb 타입 다운로드  (0) 2013.03.13
JOIN!!  (0) 2013.02.06
Posted by 사라링

SELECT SUBSTR (

                  XMLAGG (XMLELEMENT (

                             "A",

                             ',',

                             SC.BRAN_NM

                             ) ORDER BY

                                                        SB.SEQ).EXTRACT (

                     '//text()').GETSTRINGVAL (),

                  2)

          FROM    TGS_CONF_REG SA

               LEFT OUTER JOIN 

                  TGS_MEET_INFO  SB

                 ON SA.CONF_REG_NO = SB.CONF_REG_NO    

               INNER  JOIN 

                   TGS_BRAN_MGT  SC

                  ON SB.BRAN_CD = SC.BRAN_CD

'오라클' 카테고리의 다른 글

컬럼 문자 인지 숫자인지 확인.  (0) 2013.09.25
쿼리생성 하는 쿼리  (0) 2013.05.30
jsp BLOb 타입 다운로드  (0) 2013.03.13
JOIN!!  (0) 2013.02.06
DB 부하율 검색 쿼리 (1등하면 안좋은것..)  (0) 2013.01.29
Posted by 사라링


$("#connectContract tbody .hovertr").on("click",function(){


var objectName = new Object(); // object 선언 modal의 이름이 된다.

objectName.message = "이건 테스트"; // modal에 넘겨줄 값을 선언할 수 있다.


var site = "./modalPopup.html";

var style ="dialogWidth:255px;dialogHeight:250px"; // 사이즈등 style을 선언

window.showModalDialog(site, objectName ,style ); // modal 실행 window.showModalDialog 포인트!!


// modal 에 넘겨줬던 값을 다시 부모창에 받아 들임   

document.getElementById("test1").value = objectName.message;

});



//자식창(팝업창) 에서 초기화 function 팝업 창에서 부모창이 보내준 값을 받고 돌려 주는 부분

function init(){


// 부모페이지의 값을 불러들이기 위함 window.dialogArguments 포인트!

var opener = window.dialogArguments ;

var message = opener.message; // 부모창에서 object에 넣었던 값

alert(message);

opener.message="test OK!!!"; // object 값을 변경

//window.close();

}

Posted by 사라링

$('.hovertr').bind("mouseover", function(){

var color  = $(this).css("background-color");

$(this).css("background", "#F5F5F5");

$(this).bind("mouseout", function(){

$(this).css("background", color);

})

});

'J-Query' 카테고리의 다른 글

리플레쉬 없이 Jquey 를 테스트 해보자 .  (0) 2014.09.01
modal popup 창 사용 부모 자식간의 데이터 전송  (0) 2013.05.10
dialog 예제  (0) 2013.03.12
JQUERY!! 사이트  (0) 2012.11.26
extjs 공부해 보자.  (0) 2012.11.22
Posted by 사라링

BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :