열라 바쁜 가끔 빈곤 곰돌이

가끔 셀렉트박스를 3개정도 놔두고 하나를 선택하면 다른 하나의 값을 초기화.. 내지는 특정한 값으로 이동시켜야 할 경우가 있습니다.



function resetSel(selName) {
	selval = jQuery("#"+selName+" option:selected").val();
	if(selval.length>0) {
		if(selName == "districtPlan") {
			jQuery("#etc_law option:eq(0)").attr("selected", "selected");
			jQuery("#district option:eq(0)").attr("selected", "selected");
		}
		if(selName == "etc_law") {
			jQuery("#districtPlan option:eq(0)").attr("selected", "selected");
			jQuery("#district option:eq(0)").attr("selected", "selected");
		}
		if(selName == "district") {
			jQuery("#districtPlan option:eq(0)").attr("selected", "selected");
			jQuery("#etc_law option:eq(0)").attr("selected", "selected");
		}
	}
}


selName은 입력받은 값입니다.

A를 선택한 경우에 B,C의 값을 0번째(제일위)를 선택한 것으로 만듭니다.


생각보다 간단한 것들인데 제가 보기에 항상 예시가 없어서 헷갈려서 적어놓습니다.

Comment +0

가끔 생각해보면 내가 해보려고 하는건 인터넷에 없을까 하는 생각이 듭니다.


오늘 하던 팁은 테이블1에서 하나의 체크박스를 건드리면 테이블2에서 해당 값으로 시작하는 데이터들의 체크박스를 해제하는 것입니다.



function chkSel2(selVal) {
	//넘겨받은 selVal을 가지고 buildtype2에서 해당값을 갖는 체크박스가 체크되어 있는지 찾습니다.
	//체크가 되어 있으면 true를 반환할거고 아니면 false를 반환하겠죠.
	var chkYn = jQuery("input[name=buildtype2][value='"+selVal+"']").is(":checked");

	//그렇게 체크된 값을 가지고, buildtype3의 모든 값들을 찾기 시작합니다.
	jQuery("input[name=buildtype3]").each(function(index, value) {
		//이제 each라는 반복문에 대해서는 굳이 설명할 필요는 없겠죠.
		//현재 값을 chgVal에 저장합니다.
		var chgVal = this.value;

		//chgVal 과 selVal이 같고 체크가 되어 있다면
		if(chgVal == selVal && chkYn == true) {
			//jQuery에게 buildtype3의 체크박스들의 chgVal을 value로 갖고 있는 체크박스를 체크하도록 시킵니다.
			jQuery("input[name=buildtype3][value='"+chgVal+"']").attr("checked",true);
		} else if(chgVal == selVal && chkYn == false) {
			//true false에 따라 체크박스가 해제된거라면 해당값은 체크를 해제하기 시작하겠죠.
			jQuery("input[name=buildtype3][value='"+chgVal+"']").attr("checked",false);
		}
	});
}

buildtype2라고 이름지어진 체크박스의 무리들이 있습니다.

이 중에 넘겨받은 selVal 이라는 값을 갖는 체크박스가 체크 되었는지 체크합니다.


이렇게 하면 서로 다른 테이블의 값들을 찾을수 있습니다.

말이 테이블이라고 했을뿐 input type의 name으로 체크를 하므로 여러 다양한 상황에서 사용가능할 것입니다.


Comment +0

XE에서 개발하다가 mysql의 프로시저를 호출해야 할 일이 생겼습니다. 

DB에서 약 3천건의 데이터를 단순히 불러다가 다시 저장하는 insert select 작업입니다.

프로시저는 이미 만들어져 있어서 어찌 하나 보니 예전 방식으로 mysql_connect등을 하는 문서들을 보았는데, 

일단 그러면 안됩니다. (PHP7에서 다 없어집니다.)


http://www.slideshare.net/sejin7940/xe-hack

상기 링크의 32번 슬라이드를 참고하여 작업했습니다.

슬라이드에는 결과값을 받아오는 부분이 있어서 길지만,

저는 프로시져를 실행하고 그 결과에 대해서 받아올 생각이 없었으므로, 

간단하게 아래 쿼리로 작업이 가능했습니다.



/* 쿼리 직접 날리기 */

//DB의 인스턴스를 생성합니다.
$oDB = &DB::getInstance();
//쿼리에 해당 인자를 넣습니다.
$query = "call CopyList('".$in_a."', '".$in_b."', '".$src_a."', '".$src_b."')";
//쿼리를 실행합니다.
$exec_query = $oDB->_query($query);


위의 프로시저를 대충 설명하자면, src_a, src_b 를 받아 데이터를 입력할때 in_a, in_b로 값을 치환하여 저장하는 프로시져입니다.


여기서 주의할점은 $in_a 같이 각 변수 앞뒤에 '(홑따옴표) 를 넣어주어야 한다는 겁니다.

그러니까 xml query와 같이 XE는 쿼리에 대해서 변환을 안하고 그대로 DB에다가 쿼리를 넣습니다.

곧 코딩할때 sql 쿼리문을 다 작성해야 한다는 겁니다.


예전처럼 어렵지 않습니다.

사실상 executeQuery 함수전에 쿼리를 변수에 넣어주는 작업이 추가 되었을 뿐입니다.

Comment +0