language/jquery 2013. 9. 11. 17:34
원본 링크 http://nampoong.tistory.com/75
날짜 입력폼과 관계된 데이터 컨트롤시 jquery-ui 에서 제공하는 datepicker 를 많이 이용하는데요.
오늘은 시작일과 종료일의 범위를 두고 그사이의 특정날짜들을 일부 제거해야하는 형태의 프로그램작업이 있어 작업한걸 공개해봅니다.
일단 먼저 아래와 같이 기본적으로 필요한 jquery 와 jquery-ui 를 불러옵니다. jquery.com CDN 을 이용했습니다.
날짜컨트롤들을 지역화하여 한글형태로 다루기 위해 먼저 datepicker 의 기본옵션값을 세팅해둔후 주말(토,일요일), 일요일, 이전날짜, 특정날짜들을 return 하는 함수들도 선언해 둡니다.
disabledDays 라는 배열변수에는 임의로 "2013-7-9", "2013-7-24", "2013-7-26" 와 같이 3개의 날짜를 듬성듬성 심어놓았습니다.
각 입력폼에 datepicker 를 호출하면서 beforeShowDay 라는 옵션값에 가져오는 값에 따라 특정날짜들이 disable 됩니다.
02
$.datepicker.regional[
'ko'
] = {closeText:
'닫기'
,prevText:
'이전달'
,nextText:
'다음달'
,currentText:
'오늘'
,monthNames: [
'1월(JAN)'
,
'2월(FEB)'
,
'3월(MAR)'
,
'4월(APR)'
,
'5월(MAY)'
,
'6월(JUN)'
,
'7월(JUL)'
,
'8월(AUG)'
,
'9월(SEP)'
,
'10월(OCT)'
,
'11월(NOV)'
,
'12월(DEC)'
],monthNamesShort: [
'1월'
,
'2월'
,
'3월'
,
'4월'
,
'5월'
,
'6월'
,
'7월'
,
'8월'
,
'9월'
,
'10월'
,
'11월'
,
'12월'
],dayNames: [
'일'
,
'월'
,
'화'
,
'수'
,
'목'
,
'금'
,
'토'
],dayNamesShort: [
'일'
,
'월'
,
'화'
,
'수'
,
'목'
,
'금'
,
'토'
],dayNamesMin: [
'일'
,
'월'
,
'화'
,
'수'
,
'목'
,
'금'
,
'토'
],weekHeader:
'Wk'
,dateFormat:
'yy-mm-dd'
,firstDay: 0,isRTL:
false
,showMonthAfterYear:
true
,yearSuffix:
''
};
03
$.datepicker.setDefaults($.datepicker.regional[
'ko'
]);
04
$(
'#date1'
).datepicker({showOn:
'both'
,buttonText:
"달력"
,changeMonth:
true
,changeYear:
true
,showButtonPanel:
true
,yearRange:
'c-99:c+99'
,constrainInput:
true
,maxDate:
'+1y'
,beforeShowDay: disableAllTheseDays });
05
$(
'#date2'
).datepicker({showOn:
'both'
,buttonText:
"달력"
,changeMonth:
true
,changeYear:
true
,showButtonPanel:
true
,yearRange:
'c-99:c+99'
,constrainInput:
true
,maxDate:
'+1y'
,beforeShowDay: noBefore });
06
$(
'#date3'
).datepicker({showOn:
'both'
,buttonText:
"달력"
,changeMonth:
true
,changeYear:
true
,showButtonPanel:
true
,yearRange:
'c-99:c+99'
,constrainInput:
true
,maxDate:
'+1y'
,beforeShowDay: noWeekendsOrHolidays });
07
$(
'#date4'
).datepicker({showOn:
'both'
,buttonText:
"달력"
,changeMonth:
true
,changeYear:
true
,showButtonPanel:
true
,yearRange:
'c-99:c+99'
,constrainInput:
true
,maxDate:
'+1y'
,beforeShowDay: noSundays });
11
var
disabledDays = [
"2013-7-9"
,
"2013-7-24"
,
"2013-7-26"
];
14
function
noWeekendsOrHolidays(date) {
15
var
noWeekend = jQuery.datepicker.noWeekends(date);
16
return
noWeekend[0] ? [
true
] : noWeekend;
20
function
noSundays(date) {
21
return
[date.getDay() != 0,
''
];
25
function
noBefore(date){
26
if
(date <
new
Date())
32
function
disableAllTheseDays(date) {
33
var
m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
34
for
(i = 0; i < disabledDays.length; i++) {
35
if
($.inArray(y +
'-'
+(m+1) +
'-'
+ d,disabledDays) != -1) {
위 소스상의 내용은 아래 입력폼에서 테스트 해볼수 있습니다.
특정일 비활성화 : 달력
이전날짜 비활성화 : 달력
주말(토,일) 비활성화 : 달력
일요일만 비활성화 : 달력
특정날짜와 주말을 비활성화한다던지 토요일만 비활성화 한다던지.. 국경일,명절 날짜데이터를 수집해서 비활성화 한다던지 여러가지로 응용해서 만들어 볼수도 있겠습니다~~~ ^^
참고 url :
http://api.jqueryui.com/datepicker/
http://davidwalsh.name/jquery-datepicker-disable-days
공유하기
URL 복사 카카오톡 공유 페이스북 공유 엑스 공유
language/DB 2013. 9. 10. 12:59
http://stackoverflow.com/questions/51470/how-do-i-reset-a-sequence-in-oracle
CREATE or REPLACE PROCEDURE reset_sequence (sequencename IN VARCHAR2) as
curr_val INTEGER;
BEGIN
EXECUTE IMMEDIATE 'alter sequence ' ||sequencename||' MINVALUE 0';
EXECUTE IMMEDIATE 'SELECT ' ||sequencename ||'.nextval FROM dual' INTO curr_val;
EXECUTE IMMEDIATE 'alter sequence ' ||sequencename||' increment by -'||curr_val;
EXECUTE IMMEDIATE 'SELECT ' ||sequencename ||'.nextval FROM dual' INTO curr_val;
EXECUTE IMMEDIATE 'alter sequence ' ||sequencename||' increment by 1';
END reset_sequence;
language/DB 2013. 8. 16. 13:30
CREATE PROCEDURE PRC_TNINFO (P_USER VARCHAR2(20), P_DB_ID NUMBER(20), P_TM VARCHAR2(14)) IS v_state varchar2(1000) := ''; v_TABLE_NM varchar2(500) := ' '; v_TABLE_NM2 varchar2(500) := ' '; v_TABLE_ID NUMBER(20); v_COLUMN_ID NUMBER(20); v_COLUMN_NM varchar2(500) := ''; v_COLUMN_KOREAN_NM varchar2(500) := ''; v_DATA_TY varchar2(500) := ''; v_DATA_LT number(4); v_DCMLPOINT_LT number(4);
v_sql varchar2(500) := ''; TYPE CurTyp IS REF CURSOR; cv1 CurTyp; i_t number := 0; i_c number := 0; BEGIN v_sql := ' SELECT TABLE_NM,COLUMN_NM , COLUMN_KOREAN_NM, DATA_TY, DATA_LT, DCMLPOINT_LT FROM PDQM.TNTABLECOLUMNINFO ' || ' WHERE REGISTER_ID = :1 AND DATABASE_ID= :2 ' ; IF cv1%ISOPEN THEN CLOSE cv1; END IF; OPEN cv1 FOR v_sql using P_USER, P_DB_ID; LOOP FETCH cv1 INTO v_TABLE_NM, v_COLUMN_NM ,v_COLUMN_KOREAN_NM, v_DATA_TY, v_DATA_LT ,v_DCMLPOINT_LT ; EXIT WHEN cv1%NOTFOUND; IF (v_TABLE_NM <> v_TABLE_NM2) then BEGIN v_TABLE_ID:= SEQ_M_TABLEID.NEXTVAL; i_t := i_t + 1; i_c := 0; INSERT INTO TNTABLEINFO (TABLE_ID, DATABASE_ID, TABLE_NM, SORT_ORDR) VALUES (v_TABLE_ID, P_DB_ID, v_TABLE_NM , i_t); END; END IF; v_TABLE_NM2 := v_TABLE_NM; BEGIN v_COLUMN_ID := SEQ_M_COLUMNID.NEXTVAL; i_c := i_c + 1; INSERT INTO TNCOLUMNINFO (COLUMN_ID, TABLE_ID, COLUMN_NM, COLUMN_KOREAN_NM, DATA_TY, DATA_LT, DCMLPOINT_LT, SORT_ORDR) VALUES (v_COLUMN_ID, v_TABLE_ID, v_COLUMN_NM, v_COLUMN_KOREAN_NM, v_DATA_TY, v_DATA_LT ,v_DCMLPOINT_LT, i_c); END; END LOOP; IF cv1%ISOPEN THEN CLOSE cv1; END IF;
BEGIN DELETE FROM TNTABLECOLUMNINFO WHERE REGISTER_ID = P_USER AND DATABASE_ID = P_DB_ID; END; END;
language/etc 2013. 8. 6. 14:36
language/DB 2013. 7. 26. 10:55
ORA-01502: 인덱스 '계정.인덱스명'또는 인덱스 분할영역은 사용할 수 없은 상태입니다
해당 인덱스를 리빌드 한다.
alter index "계정"."인덱스명" rebuild ;
링크 답변내용
http://www.dbguide.net/dbqna.db?cmd=view&boardConfigUid=30&boardUid=176239
ORA-01502 에러는 생성된 인덱스를 사용할 수 없을때 발생하는 에러입니다.
DBA_INDEXES나 DBA_IND_PARTITIONS 뷰를 질의해서 STATUS 컬럼의 값이 UNUSABLE, N/A가 아닌 인덱스가 있는지 확인해 보시기 바랍니다.
해당 에러 발생 시, 에러 메시지를 보면 문제가 되는 인덱스를 확인할 수 있습니다.
해당 인덱스를 REBUILD 해 주시면 정상적으로 서비스 가능합니
language/java 2013. 7. 23. 15:54
function getCookie1(Name) {
var search = Name+"=";
search=search.replace(/_/gi,"%5F");//_가 인코딩이 않되어 수작업으로 변경
if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면
offset = document.cookie.indexOf(search);
// alert(document.cookie); //사용 할 수 있는 쿠키 값을 불러옴
// alert("3333 offset :"+offset+" // search:"+search);
// alert("3333 offset :"+offset
// +"\n//search:"+search
// +"\n//escape():"+escape(Name)
// +"\n//encodeURI() :"+encodeURI(Name)
// +"\n//unescape() :"+unescape(Name)
// +"\n//decodeURI() :"+decodeURI(Name)
// +"\n//encodeURIComponent() :"+encodeURIComponent(Name)
// +"\n//decodeURIComponent() :"+decodeURIComponent(Name) ); // _ 는 인코않된다...ㅋ
if (offset != -1) { // 쿠키가 존재하면
offset += search.length;
// set index of beginning of value
end = document.cookie.indexOf(";", offset);
// 쿠키 값의 마지막 위치 인덱스 번호 설정
if (end == -1)
end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
}
return "";
}
<script>
$('#chk_same').click(function() {
var ischecked = $('#chk_same').attr('checked');
if(ischecked){
firtName = getCookie1("AWB_FIRT_NAME");
lastName = getCookie1("AWB_LAST_NAME");
birth = getCookie1("AWB_BIRTH_DATE");
sex = getCookie1("AWB_PAX_SEX");
hangul_name =getCookie1("AWB_USER_NM");
alert("firtName:"+firtName+"//lastName:"+lastName+"//birth:"+birth+"//sex:"+sex);
$('#pax01_hangul_name').val(firtName); //hidden 값
$('#pax01_last_name').val(lastName);
$('#pax01_first_name').val(firtName);
$('#pax01_birth').val(birth);
// $('#pax01_sex').val(sex);
$("#pax01_sex").val(sex).attr("selected", "selected"); //select box 선택
}
});
</script>
language/java 2013. 7. 12. 12:20
해당 폴더 아래 전부 치환 리눅스
getYear사용시에 년도가져오는 부분이 잘못 가져와 getFullYear로 전부 변경 대소문자 구분된다.
find ./ -name "*.html" -exec perl -pi -e "s/getYear/getFullYear/g" "{}" \;
language/java 2013. 7. 9. 15:43