[2021.06.17 업데이트] '기본분류는 반드시 선택해야 합니다.' 에러 해결 방법 > 팁 & 테크

본문 바로가기

팁 & 테크

[2021.06.17 업데이트] '기본분류는 반드시 선택해야 합니다.' 에러 해결 방법

본문

상품관리 페이지에서 선택수정 시 '기본분류는 반드시 선택해야 합니다.' 이와 같은 alert 창이 뜨면서 수정이 진행되지 않는데요.

이 문제는 itemlistupdate.php 에서 ca_id 값을 전달받지 못했을 때 해당 알림을 띄우도록 되어있고,
상품목록 페이지에서 '선택수정' 버튼을 눌렀을 때 ca_id ~ ca_id2 값을 함께 넘겨줘야 하는데 해당 값이 누락되어서 전송됨으로 인해
발생하는 문제입니다.

버그 패치가 릴리즈 되기 전에 이 문제를 해결하고 싶으신 분은 다음과 같이 코드를 수정해주시면 됩니다.

일단 파일 2가지를 수정해주셔야하구요.

1. /adm/eyoom_admin/theme/basic/skin/shop/itemlist.html.php
2. /adm/eyoom_admin/core/shop/itemlistupdate.php

1번은 자바스크립트 부분을 수정해주셔야 합니다.
파일을 여시고 "체크: "<input type='hidden' name='it_id" 요 문구로 검색을 하시면 424라인 정도가 될건데..
그 상단에 아래 코드를 입력해주세요.

ca_id: "<input type='hidden' name='ca_id[<?php echo $i; ?>]' value='<?php echo $list[$i]['ca_id']; ?>'>",
ca_id2: "<input type='hidden' name='ca_id2[<?php echo $i; ?>]' value='<?php echo $list[$i]['ca_id2']; ?>'>",
ca_id3: "<input type='hidden' name='ca_id3[<?php echo $i; ?>]' value='<?php echo $list[$i]['ca_id3']; ?>'>",

그러면 아래 이미지같이 되겠지요.



그리고 나서 { name: "체크", type: "text", width: 30 }, 이 구문으로 검색하시면 나오는 list에
다음 구문을 추가해주시구요.

{ name: "", type: "hidden", css: "", width: 0 },
{ name: "", type: "hidden", css: "", width: 0 },
{ name: "", type: "hidden", css: "", width: 0 },

위의 3 라인 아래에 { name: "체크", type: "text", width: 30 }, 요것이 위치하게 해주시면 됩니다.
아래 이미지처럼..


각 라인의 마지막에 , 잘 찍혀있나 확인 해주시구요.

이제 html 수정은 끝났고.. update 파일 수정만 남았습니다.

일단 기본적으로 1번 파일만 수정해도 선택한 데이터 일괄 수정은 문제 없이 가능합니다.
하지만 문제는? 수정을 할 때마다 '올바른 방법으로 이용해 주십시오.' 라는 문구가 뜬다는 것이죠..

그게 왜 뜨는가 하면 itemlistupdate.php 파일을 열어보시면 제일 아래에
alert($msg, G5_ADMIN_URL . "/?dir=shop&amp;pid=itemlist&amp;{$qstr}");
위와 같은 코드가 있는데 그누보드의 alert 함수죠?

$msg값을 alert로 띄워준 후 지정한 url로 이동하는 함수인데 문제는 선택 삭제의 경우에
$msg = "선택한 상품을 삭제하였습니다.";
이렇게 $msg가 선언되어있는데, 선택 수정에는 $msg가 없다는거죠...
그래서 if ($post_act_button == "선택수정") { 이 블록의 제일 하단에 다음과 같이 추가해주세요.

if( function_exists('shop_seo_title_update') ) shop_seo_title_update($p_it_id, true);
위의 코드 아래에 다음의 구문을 추가해주시면 됩니다. (사실 위치는 관계 노노..)

$msg = "정상적으로 수정되었습니다.";



이제 편하게 이용하세요~!

----------------------------------------

추가적으로 itemlistupdate.php만 수정해도 작동되게 가능한데.

이 방법도 괜찮은 것 같네요.
현재 상품목록 페이지에서 카테고리 일괄수정 기능이 없기때문에 

위의 alert구문을 주석처리하시고 아래의 $sql update문에서 ca_id, ca_id2, ca_id3에 해당하는 라인을 삭제하고

블록 하단에 $msg 내용만 추가해주셔도 정상 작동합니다.

 

------------------------------------------------------------
다시 작동하지 않게 됌으로 인한 내용 추가
------------------------------------------------------------

위의 방법이 이 글을 작성했던 시점에는 유효했는데.. 알 수 없는 이유로 작동하지 않게 되어서 작동 할 수밖에 없는 대응방법을 추가적으로 올립니다.
(예상하기로는.. 외부 CDN 링크하여 사용하는 라이브러리의 업데이트라든가.. 하지만 시간 관계상 정확히 확인해본 것이 아니므로 라이브러리 등의 문제가 아닐수도 있음돠)

이것은 itemlist.html.php 는 원래대로 되돌려놓고, itemlistupdate.php 만 수정하면 되는 방법입니다.

list에서 애초에 ca_id, ca_id2, ca_id3이 넘어가지 않기때문에 itemlistupdate.php 에서 해당 필드를 업데이트 해줄 필요가 없습니다.
따라서 29~31(정확히 일치하지 않을 수 있음.. 제 기준) 라인을 주석처리 하시고 (아래 이미지 참조)

56라인부터 시작되는 sql update문에서 ca_id ~ ca_id3 에 해당하는 쿼리문을 제거합니다.
아래 주석처리된 부분이 원래 쿼리문이고, 윗부분이 변경된 쿼리문입니다. 혹시 나중에 되돌려야할지 모르니 기존 쿼리는 남겨놓으시는게...ㅎㅎ

암튼 위와 같이 기본 분류를 선택하라는 메세지 주석처리 + 쿼리문 수정 후 저장하면 상품 목록에서 더이상 해당 메세지와 씨름하지 않고 데이터를 수정할 수 있게 됩니다.

0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 160
경험치 259
[레벨 2] - 진행률 15%
가입일
2015-06-03 00:25:14
서명
미입력
자기소개
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록1

daniel74님의 댓글

profile_image
잘보고갑니다.
행복한 하루 되세요.

축하합니다. 첫댓글 포인트 10포인트를 획득하였습니다.

사이트 내 전체검색