본문 바로가기
PHP, Codeigniter

Codeigniter alert helper 만들기

by beop07 2021. 3. 17.

Codeigniter에서 모든 스크립트를 view에서만 처리하는데는 한계가 있다.

작업을 하다보니 컨트롤러단에서 alert창을 띄울일 많아 alert helper를 만들어 보았다.

 

/helper/alert_helper.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

// alert만
function alert_only($msg, $exit=TRUE){
	echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=\"utf-8\">";
	echo "<script type='text/javascript' charset='utf-8'> alert( decodeURI('". $msg."')); </script>";
	if($exit) exit;
}

// alert 띄우고 창닫기
function alert_close($msg){
	echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=\"utf-8\">";
	echo "<script type='text/javascript' charset='utf-8'> alert( decodeURI('".$msg."')); window.close(); </script>";
	exit;
}

// alert 띄우고 이동
function alert_move($msg, $geturl, $exit=TRUE){
	echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=\"utf-8\">";
	echo "<script type='text/javascript' charset='utf-8'> alert( decodeURI('".$msg."'));location.href='".$geturl."'; </script>";
	if($exit) exit;
}

// alert 띄우고 뒤로 이동
function alert_back($msg, $exit=TRUE){
	echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=\"utf-8\">";
	echo "<script type='text/javascript' charset='utf-8'> alert( decodeURI('".$msg."'));history.back();</script>";
	if ($exit) exit;
}

 

컨트롤러에서 사용 예시
function check_post(){
	$this->load->helper('alert');
	$post_chk = $this->input->post('post_chk', TRUE);
	if(!$post_chk){
		alert_move('전송된 값이 없습니다.', '/error');
	}else{
		alert_close('확인되었습니다.');
		// alert_back('뒤로 이동합니다');
	}
}

 

alert_only는 컨트롤 단에서 모든 DOM이 로드 되지 않은 상태에서 exit되기 때문에 특수한 경우 아니면 사용을 추천하지 않는다. alert창을 띄우고 페이지 이동이 된다던가 (팝업)창을 닫는다던가 history.back을 하는 것이 좋다.

위의 alert helper 하나 미리 만들어 놓으면 어느 상황에서도 매우 유용하게 쓰일 수 있다.

 

keywords: codeigniter alert, codeigniter alert helper, CI alert, codeigniter 경고창, codeigniter 경고창 띄우기, codeigniter alert 띄우기, 코드이그나이터 alert

반응형

댓글