부지런히 소식을 전해드릴게요.
글 등록하기 | 내글 관리하기 | 연재글 | 보관함
이온디
첨부파일 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 3 / 15 pages
번호 제목 제목 날짜날짜 조회 수
공지 이온디는 웹개발자/디자이너 커뮤니티입니다. 2021/01/22 380
공지 이온디 서비스 소개 2020/05/03 365
147 [업데이트] 만드는데 도움주신 많은 분들 감사드립니다. [2] 2007/08/20 4490
146 [작업계획] 구글 광고 채널 2007/09/20 1445
145 [업데이트] 글을 쓰기 위해서는 가입이 필요합니다. 2007/09/27 4332
144 [업데이트] 2007년 8월 15일 이후로 eond.com 은 제로보드XE를 사용하여 제작합니다. 2007/09/27 6100
143 [작업계획] 2007년 8월 15일 이후로 eond.com 은 제로보드XE를 사용하여 제작합니다. 2007/09/27 2641
142 [업데이트] 홈페이지의 문제점을 말씀해주세요! [1] 2007/09/27 12646
141 [작업계획] 가제트 이미지 파일 2007/10/07 1733
140 [업데이트] 미니위니 멤버들의 블로그를 모은 날개를 생성하였습니다. 2007/11/13 4741
139 [업데이트] 블로그에도 많이 놀러와주세요. 2007/11/13 4403
138 [업데이트] 제로보드XE beta 0.2.5 버전으로 업그레이드하였습니다. 2007/11/13 4701
137 [업데이트] 제로보드 2.0.0.6 버전으로 업데이트하였습니다. 2007/11/25 4731
136 [업데이트] 이미지 업로드 서비스, FreeIMG 2007/11/25 4704

해시태그 디렉터리

지금 이순간

오늘의 핫게시물