"코딩세끼"

2. 메뉴 삭제 관리 본문

프로그래머로 전직하기/첫번째 프로젝트 : Federico

2. 메뉴 삭제 관리

StrrayNight 2022. 1. 28. 16:07
반응형

1. 요구사항.

 

 최초 설계 : DB에서 삭제하도록 했었음. 

 

 수정 : DB에서 삭제하면 DATA를 버리게 됨으로 soft 삭제하는 것으로 방향 수정.

 

 + 다른 주문 관련된 Data들과도 fk 로 연동되어 삭제불가. 

 

 + 활성화 비활성화로 인해 구매자가 볼 수 있도록 전달.

요청 이벤트 veiw Js controller VO service/imple DB
클릭 요청 비활성화 클릭(die 전달)
활성화 클릭
(live 전달)
컨트롤러에
data 송신
data를 DB에 전달   service에 두가지 조건을 작성
die / live

비활성화: die
활성화 :live
menuLive column에 die 와 live 수신
default : live
응답 활성화로 변환
(die 수신)
비활성화로 변환 (live 수신)

컨트롤러에서
data를
'success'로 받아옴
JS로 전달 DB에 있는 menuLive의 data를 vo에 싣고 컨트롤러 감

아래 영상으로 보시겠습니다.

페데리코피자 본사-소비자페이지 관리- 메뉴관리 페이지

● 작성 중 어려웠던 사항. 

function menuDie(vsindex,menuIndex) {
		
		if(confirm(" 통계자료를 확인해보세요.\n 비활성화 또는 활성화 하시겠습니까?  ")){
			
		$.ajax({
			url:'menuDie',
			type:'post',
			data:{
				menuIndex : menuIndex,
				menuLive  : $('#menulife-btn'+vsindex).text()=='비활성화'? 'die' : 'live'						
			},			
			success:function(data){ // 성공하면 아래 작업을 실행한다.
				if(data.success == 'success'){
						
					$('.a'+vsindex).val(data.success);
														
					
					if($('#menulife-btn'+vsindex).text()=='비활성화'){					
						$('#menulife-btn'+vsindex).text('활성화');
						console.log('activity success DB=menuLive : die');
					
						$('#t_menuselect').load('menuList #t_menuselect');
						
				   }else{
						console.log('activity success DB=menuLive : live');
						
						$('#menulife-btn'+vsindex).text('비활성화');
						$('.a'+vsindex).css('text-decoration','none');
						$('#t_menuselect').load('menuList #t_menuselect');
						 }
				}
			},error:function(){
				
				console.log("비활성화 받아오기 실패");
				alert("비활성화 전송에 실패하였습니다.");
			}
		
			})//ajax
		}//confirm
	}//.click​

기능 중 ajax를 사용하여 해당 행만 리로드 하는 기능이 있는데 이를 구현하기 위해 

html의 <table> 기준으로 <c:foreach> 내의 <c:if>기능이 있었는데 어느 태그에 작동하라고 선언해야 할지 처음에는 많이 해매었다. 하지만, table의 특성상, 클래스나, 다른 ID에 적용하면 반복문으로 인해 그 행에 그만큼 반복된 다는 것을 느꼈고, table 전체를 어우르는 table tag에 선언해야 한다는 것을 알았다. 

 

초보자 글 읽어주셔서 감사합니다. 

보완해야 할 것이 있다면 감사히 듣겠습니다. 

 

감사합니다.

 

반응형

'프로그래머로 전직하기 > 첫번째 프로젝트 : Federico' 카테고리의 다른 글

Kakao Map API 사용하기  (0) 2022.02.12
JNI 오류( A jni error)  (0) 2022.01.31
1. 본사-메뉴-삭제  (0) 2022.01.22
오늘 공부한 내용.  (0) 2022.01.14