열라 바쁜 가끔 빈곤 곰돌이

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

http://www.clien.net/cs2/bbs/board.php?bo_table=cm_nas&wr_id=18418

상기 링크의 내용입니다.

어차피 내가 만든거 내가 퍼다가 놓은거에요;;;


http://www.clien.net/cs2/bbs/board.php?bo_table=cm_nas&wr_id=18388 

이러한 질문글이 올라와서요. 

 http://www.clien.net/cs2/bbs/board.php?bo_table=cm_nas&wr_id=18236 상기 소스의 php를 아래와 같이 수정해서 올려드립니다. 

 // grab the chatID (modify to Array) 여기 밑에 chatId부분에 따옴표로 해서 아이디를 여러개 넣으시면 됩니다. 봇토큰은 동일하다고 알고 있는데 혹시 제가 잘못알고 있다면 알려주시기 바랍니다.


 $val) {
$sendto = API_URL."sendmessage?chat_id=".$val."&text=".$reply;
file_get_contents($sendto);
}
 
function sendMessage() {
$message = urlencode($_GET["body"]);
return $message;
}
?>

1

XE에서 모듈개발중 파일업로드 기능을 개발해야 할일이 있었습니다.


ajax나 jQuery로 화면내에서 바뀌도록 할수도 있습니다.

이런 부분이야 다른 많은 분들이 예제를 보여주고 XE자체에서도 기능구현이 되어있으니 개발하실 분들은 그걸 참고하시면 될것 같습니다.

저는 전통적인(?) 파일입력을 받고 submit을 하면 다음 페이지에서 처리하는 부분을 간단히 구현하였습니다.


html 파일에서 첨부파일을 입력받기 위해 아래와 같이 대부분 코드를 넣으실겁니다.






그리고 이 form을 받는 액션에서 아래와 같이 코딩만 하면 됩니다.



//module_srl번호를 넘겨주어야 하므로
$module_info = Context::get("module_info");
$module_srl = $module_info->module_srl;
//첨부파일에 대한 정보는 Context::get으로 name을 입력만 해주면 됩니다.
$upfile= Context::get("upfile");
//upload_target_srl을 입력해줍니다. 여기서는 테스트를 위해 고정값을 입력했습니다. 필요한 숫자를 구하시면 되겠죠.
$upload_target_srl = "248";

//XE에서는 file이란 module을 제공하고 있습니다.
$oFileController = getController('file');
$output = $oFileController->insertFile($upfile, $module_srl, $upload_target_srl);

debugPrint($output);


이렇게 해서 output을 찍어보면 


그림과 같이 첨부파일 업로드가 되어 있습니다. 


sid등은 XE에서 자동으로 만들어주므로 신경쓰실 필요없이 간단히 파일첨부가 완성됩니다.

좀더 고급지게(?) 만들고 싶으신분들은 jQuery등으로 만드시면 되고 결국 파일 컨트롤러의 insertFile 함수만 호출하면 되는것입니다.




Comment +0

가끔 셀렉트박스를 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

내가 검색을 못하는건지 인터넷에 찾아보면 2차원 배열을 컨트롤 하는게 적습니다.

혹여 까먹을지 몰라서 적어놓습니다.


그러니까 단순히 배열을 화면에 출력해주는 예시는 굉장히 많은데,

배열을 집어넣는 소스는 거의 없다시피 하더라고요.


자바스크립트에서 나름 배열로 저장을 하는데, cannot set property '0' of undefined 이런 에러메세지가 나오는 분들에게 도움이 되었음 합니다.



Comment +0

//실행을 마치고 테이블을 정렬해주는 기능
//args는 테이블 id입니다.
function tablesort(args) {
	var buildtype = jQuery(args).children('tr').get();
	buildtype.sort(function(a,b) {
		var val1 = jQuery(a).text().toUpperCase();
		var val2 = jQuery(b).text().toUpperCase();
		return(val1val2)?1:0;
	});

	jQuery.each(buildtype,function(index,row){
		jQuery(args).append(row);
	});
}
//여기까지 입니다. 코딩 오류인지 뒤에 자꾸 이상한 글이 나와요.;;;;

Comment +0

jQuery로 계속 append된 테이블에 중복된 값을 찾아서 만약 중복된 값이 있다면 해당 row를 삭제합니다.

원래 소스는 rowspan하는 건데... 삭제용으로 수정하였습니다.

//테이블에 중복된 값을 찾아서 삭제하기
function delTableRow(tableId) {
	//입력받은 tableId에서 tr을 찾아서 저장합니다.
	var rows = jQuery(tableId).children('tr');

	for (var i = 0; i < rows.length; i++ ) {
		var row = rows[i]; //현재 row를 저장합니다.
		var prevrow = rows[i-1]; //비교하기 위한 현재 row의 이전 row를 저장합니다.
		var removeRow = jQuery(row).find("td"); //먼저 현재 row를 삭제할 row로 지정하고 아래 조건식에서 값이 같은경우 삭제하도록 하는겁니다.
		var tdList = jQuery(row).find("td").eq(0).text(); // 현재 row의 데이터를 저장합니다.
		var tdListPrev = jQuery(prevrow).find("td").eq(0).text(); // 이전 row의 데이터를 저장합니다.

		//if문으로 이전 row의 데이터와 현재 row의 데이터가 동일하다면 삭제합니다.
		if(tdList == tdListPrev ) {
			jQuery(removeRow).parent().remove();
		}
	}
}


만약 데이터가 중구난방으로 입력된다면 (정렬안된상태) 정렬을 먼저 해야 합니다.

Comment +0





결혼보다 심오한 결합은 없다. 결혼은 사랑, 신의, 헌신, 희생 그리고 가족의 가장 높은 이상을 담고 있기 때문이다. 혼인관계를 이루면서 두 사람은 이전의 혼자였던 그들보다 위대해진다. 이들 사건들의 일부 상고인들이 보여주었듯이, 결혼은 때론 죽음 후에도 지속되는 사랑을 상징한다. 이 남성들과 여성들이 결혼이란 제도를 존중하지 않는다고 말하는 것은 그들을 오해하는 것이다. 그들은 결혼을 존중하기 때문에, 스스로 결혼의 성취감을 이루고 싶을 정도로 결혼을 깊이 존중하기 때문에 청원하는 것이다. 그들의 소망은 문명의 가장 오래된 제도 중 하나로부터 배제되어 고독함 속에 남겨지지 않는 것이다. 그들은 법 앞에서 동등한 존엄을 요청하였다. 연방헌법은 그들에게 그럴 권리를 부여한다. 


연방 제6 항소법원의 판결을 파기한다. 


이상과 같이 판결한다. 







Comment +0