부지런히 소식을 전해드릴게요.
글 등록하기 | 내글 관리하기 | 연재글 | 보관함
이온디
첨부파일 https://imweb.eond.com/notice/222172
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=off&sc=off&keyword=다라나&select_arrange=headnum&desc=asc&no=40182.게시물 복사/이동 시 카테고리 지정하기

- Download #2 : loadData.zip (1.1 KB), Download : 569

게시물 복사/이동시 게시물 뒤로 이동하기란 팁을 올린 적이 있습니다. 거기에 기능을 하나 더 첨가했습니다.
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=off&sc=off&keyword=다라나&select_arrange=headnum&desc=asc&no=3888

이전 기능은 위의 링크를 참조하시고, 여기서는 새로 첨가된 기능만 쓰겠습니다.

게시판 간에 게시물 복사/이동을 할 때 기존에 있는 게시물 맨 위로 옮겨집니다. 그리고 옮겨가는 게시판의 일반 카테고리로 보통 옮겨지죠.(정확히는 제일 작은 수의 카테고리 넘버) 그런데 카테고리를 서로 다르게 해야할 필요가 있는 게시물인데 수가 많다면 이게 골치가 아픈 수작업이 됩니다. 이번에는 게시물 뒤로 옮기는 것에 더하여 카테고리를 지정해서 옮기는 것을 구현해 보겠습니다.

기본 알고리즘은 PHPSchool의 아래 링크를 참조하십시오.
http://www.phpschool.com/bbs2/inc_view.html?id=8353&code=tnt2&start=0&mode=search&field=name&operator=and&period=all&category_id=&s_que=%B0%C5%C4%A3%B8%B6%B7%E7

고칠 부분은 저번과 같이 파일 3개입니다.

script/script_list.php
----------------------------------------------------------------------
111 라인 근처에 보시면
window.open("select_list_all.php?id=<?=$id?>&selected="+document.list.selected.value,"게시물정리","width=260,height=220,toolbars=no,resize=no,scrollbars=no");

에서 height=220(저번에 바꾼 값)을 height=270으로 바꿔주십시오.
----------------------------------------------------------------------


list_all.php
----------------------------------------------------------------------
181 라인 근처에 보시면
$a_category=mysql_fetch_array(mysql_query("select min(no) from $t_category"."_$board_name",$connect));
$category=$a_category[0];
이런 2줄이 보일겁니다.

이것을 아래와 같이 바꿔주십시오.
if($category_no) {
        $category=$category_no;
}
else {
        $a_category=mysql_fetch_array(mysql_query("select min(no) from $t_category"."_$board_name",$connect));
        $category=$a_category[0];
}
----------------------------------------------------------------------


select_list_all.php 이건 조금 고칠 게 많습니다.
----------------------------------------------------------------------
1. function change_board_name 바로 위에 아래의 코드를 넣어주세요.
<script id="dynamic"></script>

2. function change_board_name을 다음과 같이 바꿔주세요.
function change_board_name(sel,target)
{
select.board_name.value=select.select_board_name.value;

var trigger = sel.options[sel.selectedIndex].text;        // 첫번째 selectbox의 선택된 텍스트
var form = sel.form.name;
dynamic.src = "loadData.php?form=" + form + "&trigger=" + trigger + "&target=" + target;
}

3. function change_board_name 함수 밑에 아래 함수를 추가합니다.
//옮겨갈 게시판의 카테고리를 선택하는 부분 2003.5.03
function change_category_no()
{
select.category_no.value=select.select_board_category.value;
}

4. 게시판 아이디를 구하는 셀렉트 박스에서 onChange 이벤트에 부르는 함수에 위 2번에 정한 것처럼 인자를 넣습니다.
<select name=select_board_name onchange=change_board_name(this,'select_board_category') style=width:100%>

5. 게시판 아이디를 구하는 셀렉트 박스가 끝나는 다음에 아래의 코드를 추가합니다. 위의 자바스크립트 함수를 추가했다면 대략 120라인 근처입니다.
<!--옮겨갈 게시판의 카테고리를 선택하는 부분 2003.5.03-->
<tr>
        <td background=images/m_back.gif align=center>
                ↓카테고리를 선택하시오.(모르면 놔두시오)
        </td>
</tr>
<tr>
        <td background=images/m_back.gif align=center>
        <table border=0 width=240>
        <tr>
                <td><select name=select_board_category onchange=change_category_no() style=width:100%>
                        <option> </option>
                </select></td>
        </tr>
        </table>
        </td>
</tr>
<!--여기까지 옮겨갈 게시판의 카테고리를 선택하는 부분 2003.5.03-->

6. 맨 밑으로 가셔서 다음 부분을 찾으세요.
<input type=hidden name=board_name value="<?=$s_name?>">

그리고 그 바로 밑에 아래 코드를 추가하세요.
<input type=hidden name=category_no value="">
----------------------------------------------------------------------


그리고 첨부된 loadData.php 파일을 제로보드 디렉토리에다가 풀어주세요.


원리 설명 :
1. 첫번째 셀렉트 박스에서 게시판을 선택하면 change_board_name 함수가 불리고,
2. 그 함수에서는 선택된 게시판 아이디와 카테고리를 선택하는 두번째 셀렉트 박스를 인자로 해서 loadData.php로 넘겨줍니다.
3. loadData.php에서는 자바 스크립트를 이용하여 두번째 셀렉트 박스의 옵션 값들을 지정해줍니다.

중요한 것은 <script id="dynamic"></script>를 빼먹지 말라는 겁니다.
자세한 것은 PHPSchool의 링크를 보시면 잘 설명되어 있습니다.

코멘트 0
접기/펴기 | 댓글 새로고침
 
 
Total 171 articles in 7 / 15 pages
번호 제목 제목 날짜날짜 조회 수
공지 이온디는 웹개발자/디자이너 커뮤니티입니다. 2021/01/22 380
공지 이온디 서비스 소개 2020/05/03 365
99 [작업계획] 결국은 하나였다. 파일 2010/02/21 6913
98 [업데이트] 하루 블로그 2010/02/23 6115
97 [업데이트] 태그 위젯 아악..ㅠ 2010/02/24 6739
96 [업데이트] 애드센스로 인해 다시 더러워졌다 [1] 2010/02/25 8252
95 현재 홈페이지 제작 중입니다 :) 2010/07/07 7193
94 플래시 이미지 출력 슬라이드를 설치하였습니다. 파일 2010/07/07 9424
93 [업데이트] 이온디 갤러리 버전으로 리뉴얼하였습니다. 2010/08/18 8287
92 [업데이트] blog.eond.com 새로 이전하였습니다. [1] 2010/08/26 9639
91 [업데이트] 이온디 미니홈피의 운영 방안 2010/10/30 9107
90 [업데이트] 홈페이지 방향, 홈페이지의 정체성을 잃어가다 [6] 2010/10/31 9118
89 [업데이트] 마이노트 레이아웃을 적용하였습니다. 2010/11/06 9080
88 [업데이트] 홈페이지 메뉴 정리 중입니다. 2010/11/06 9867

해시태그 디렉터리

지금 이순간

오늘의 핫게시물