질문Q #20829
DB insert 후, 컨트롤러 거쳐서, view에서 성공여부 얼럿창을 띄웠는데 의견 부탁 드립니다.
그동안2019-01-30 11:16:24

DB insert 후,

(이전) result 값 받아서, 컨트롤러에서 alert  : 흰 여백에 alert이 뜨는것이 보기 싫어서 현재 버전으로 변경.

(현재) result 값 받아서, 컨트롤러 거쳐서, view에서 성공여부 얼럿창을 띄움.

정상 동작은 하는데 일반적으로 이렇게 해도 되는지...선배님들 의견 좀 부탁 드립니다.

 

(현재 컨트롤러 소스)

			else
			{
                       --생략--
	              'created_by' => $this->input->post('user_name', TRUE) ,                   //생성자 명(=가입자명)
	              'created_ip' => $this->input->post('created_ip', TRUE)                  //생성자 ip
			    );
            
                $data['result'] = $this->member_m->freelancer_member_insert($data);       //모델에 업데이트 요청
		        $this->load->view('html/joinus/join_freelancer_v.php',$data);             //성공여부 결과 값을 뷰로 넘김
			}

(현재 뷰 소스)

<!---- 회원가입 완료 alert 시작 ---->
<script> 
    //컨트롤러로 부터 넘겨받은 result를 변수로 만듬
    var result = "<?php echo $result; ?>" 

    if( result )  		//등록 성공 시               
    {                                                   
		alert('가입 완료 되었습니다.', '/auth');
		exit;
    }
    else           
    {                                                   
		alert('다시 입력해 주세요.', '/joinus/join_user');
		exit;
    } 
</script>
<!---- 회원가입 완료 alert 끝 ---->

 

답변5
#1 변종원(웅파) 2019-01-30 11:20:45
form 이동하지 않고 ajax로 처리하시면 그 화면에서 처리가 되니까 그게 더 편할겁니다.
#2 배강민 2019-01-30 13:18:39

전 요새는

https://codeigniter-kr.org/user_guide_2.1.0/libraries/sessions.html

제일 하단에 보시면 flashdata 라는게 있습니다.

1회성 세션에 내용을 담는 겁니다.

그리고서 레이아웃이나 등에 저 값을 alert하는 걸 레이아웃등 공통 영역, 없다면 전부(?)에 넣어두고

글 등록후 flashdata에 담아서 이동할 페이지로 그냥 보냅니다. 그러면 이동된 페이지에 1회성 flashdata에 데이터가 있으니 그를 뿌리던 어쩌던 합니다.

#3 그동안 2019-01-30 13:45:52

웅파님, 강민님. 좋은 의견 감사합니다^^ 많은 도움 되었습니다.

번외로 궁금한게 있는데요..

Data 처리할때, 요즘 Form 대신에  AJAX로 대부분 처리하나요? AJAX로 처리 시 보안 이슈는 어떤가요?

저는 회원가입, 로그인, 회원정보수정은 FORM으로 하고, 나머지는 AJAX로 전부 처리했는데 어떻게 하는 것이 일반적인지 

궁금하네요. 

 

  

#4 배강민 2019-01-30 17:16:35

Ajax는

비동기가 좋은 상황이라던가

비동기여야만 하는 상황이라던가

개발/기획/UI/UX의 성향에 따른 선택이지 뭐가 좋고 안좋고가 결정될 부분은 아니라고 봅니당~

#5 변종원(웅파) 2019-01-31 10:16:31

동기던지 비동기던지 서버에서 처리하는 보안은 똑같습니다. 어떤게 보안에 취약하고 그런건 없습니다. ^^