예약스킨 합산 금액 ㅠㅠ
■ write.skin.php
Copy
<?phpif(defined('_GNUBOARD_') == false){ exit('스킨파일은 단독으로 실행할 수 없습니다.');}?><script>var g5_bbs_skin_url = "<?php echo $board_skin_url; ?>";</script><script src="<?php echo $board_skin_url; ?>/script.js"></script><link rel="stylesheet" href="<?php echo $board_skin_url; ?>/style.css"><form id="mara_write" name="fwrite" method="post" action="<?php echo G5_BBS_URL; ?>/write_update.php" enctype="multipart/form-data" onsubmit="return checkWrite(this);" style="width:<?php echo $width; ?>;"> <input type="hidden" name="wr_subject" value="tmp_text"> <p> <input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="bo_table" value="<?php echo $bo_table; ?>"> </p> <h2 class="guide"><span></span>이용안내</h2> <ol class="explain"> <li>인터넷예약이 가능한 기간은 <strong><?php echo $date['min']; ?>부터 <?php echo $date['max']; ?>까지</strong>이며, 그 외의 기간은 전화로 문의해주세요.</li> <li>1회 예약시 숙박이 가능한 기간은 <strong>최대 <?php echo $board['bo_5']; ?>박 <?php echo $board['bo_5'] + 1; ?>일</strong>이며, 그 이상의 기간은 전화로 문의해주세요.</li> <li>선택한 숙박일자에 이용할 수 없는 객실은 선택할 수 없거나 숙박기간이 조정되어 보여질 수 있습니다.</li> <li>예약신청이 완료된 후 <strong><?php echo $board['bo_6']; ?>일 이내에 입금</strong>이 확인되지 않으면 별도의 확인절차없이 예약은 취소됩니다.</li> <li>무통장입금 계좌번호안내 : <?php echo $board['bo_10']; ?></li> </ol> <h2 class="rm_select"><span></span>객실선택</h2> <p class="select"> <span class="sound_only">날짜를 변경하시면 입력한 내용이 초기화 됩니다.</span> <label for="if_day" class="sound_only">날짜</label> <select name="select" id="if_day" class="day_select"><?php echo optionDate($select); ?></select> </p> <table class="mara_rw"> <caption>객실 선택</caption> <colgroup> <col class="rm_grid_5"><!-- 25% --> <col class="rm_grid_2"><!-- 10% --> <col class="rm_grid_3"><!-- 15% --> <col class="rm_grid_3"><!-- 15% --> <col class="rm_grid_3"><!-- 15% --> <col class="rm_grid_2"><!-- 10% --> <col class="rm_grid_2"><!-- 10% --> </colgroup> <thead> <tr> <th scope="col">객실정보</th> <th scope="col">기준/최대</th> <th scope="col">숙박일자</th> <th scope="col">숙박기간</th> <th scope="col">인원</th> <th scope="col">이용금액</th> <th scope="col">선택</th> </tr> </thead> <tfoot> <tr> <td colspan="5">총 결제금액</td> <td class="red" colspan="2"><span id="total">0</span>원</td> </tr> </tfoot> <tbody> <?php for($i = 0;$i < $max; $i++){ ?> <tr> <td class="left"> <input type="hidden" name="use[<?php echo $ROOM[$i]['wr_id']; ?>]" value="<?php echo $ROOM[$i]['disabled']; ?>"> <a href="#none" onclick="window.open('<?php echo $ROOM[$i]['link']; ?>');"><img src="<?php echo $board_skin_url; ?>/img/b_room.gif" alt="상세정보"></a> [<?php if($ROOM[$i]['ca_name']){ echo $ROOM[$i]['ca_name'] . '/'; } ?><?php echo $ROOM[$i]['wr_1']; ?>평형] <?php echo $ROOM[$i]['wr_subject']; ?> </td> <td><?php echo $ROOM[$i]['wr_2']; ?>명/<?php echo $ROOM[$i]['wr_3']; ?>명</td> <td><?php echo $select; ?></td> <td> <label for="if_stay[<?php echo $ROOM[$i]['wr_id']; ?>]" class="sound_only">숙박기간</label> <select name="stay[<?php echo $ROOM[$i]['wr_id']; ?>]" id="if_stay[<?php echo $ROOM[$i]['wr_id']; ?>]" onchange="checkPrice('<?php echo $ROOM[$i]['wr_id']; ?>');" <?php echo $ROOM[$i]['disabled']; ?>> <?php optionStay($ROOM[$i]['stay']); ?> </select> </td> <td> <label for="if_person[<?php echo $ROOM[$i]['wr_id']; ?>]" class="sound_only">인원선택</label> <select name="person[<?php echo $ROOM[$i]['wr_id']; ?>]" id="if_person[<?php echo $ROOM[$i]['wr_id']; ?>]" onchange="checkPrice('<?php echo $ROOM[$i]['wr_id']; ?>');" <?php echo $ROOM[$i]['disabled']; ?>> <?php optionPerson($ROOM[$i]['wr_2'], $ROOM[$i]['wr_3']); ?> </select> </td> <td><span id="price[<?php echo $ROOM[$i]['wr_id']; ?>]"><?php echo number_format($ROOM[$i]['price']); ?></span>원</td> <td> <?php if(isset($ROOM[$i]['inquiry']) == true){ ?> <a href="<?php echo $ROOM[$i]['inquiry']; ?>"><img src="<?php echo $board_skin_url; ?>/img/b_inquiry.gif" alt="예약확인"></a> <?php } else{ ?> <input type="checkbox" name="room[]" value="<?php echo $ROOM[$i]['wr_id']; ?>" onclick="checkTotal();" <?php echo $ROOM[$i]['disabled']; ?>> <?php } ?> </td> </tr> <?php } ?> </tbody> </table> <h2 class="info"><span></span>예약자정보</h2> <table class="mara_info"> <caption>예약자정보 입력</caption> <colgroup> <col class="rm_grid_4"><!-- 20% --> <col class="rm_grid_6"><!-- 30% --> <col class="rm_grid_4"><!-- 20% --> <col class="rm_grid_6"><!-- 30% --> </colgroup> <tbody> <tr> <th scope="row"><label for="if_name">이름</label></th> <td><input type="text" name="wr_name" value="<?php echo $member['mb_name']; ?>" id="if_name" required <?php echo $readonly; ?>></td> <th scope="row"><label for="if_pw">비밀번호</label></th> <td><input type="password" id="if_pw" name="wr_password" value="<?php echo $password; ?>" <?php echo $password_required; ?> <?php echo $readonly; ?>></td> </tr> <tr> <th scope="row"><label for="if_phone" class="frm_essential">연락처</label></th> <td colspan="3"> <span class="frm_info">(반드시 010-3456-7890과 같은 형식으로 입력해주세요)</span> <input type="text" name="wr_homepage" value="<?php echo $homepage; ?>" id="if_phone" class="required" required> </td> </tr> <tr> <th scope="row"><label for="if_memo" class="frm_essential">메모</label></th> <td colspan="3"><textarea name="wr_content" id="if_memo" class="required" cols="10" rows="5"><?php echo $content; ?></textarea></td> </tr> </tbody> </table> <?php if($guide){ ?> <h2 class="important"><span></span>준수사항</h2> <p class="explain"><?php echo get_text($guide, 1); ?></p> <?php } ?> <div class="mara_btn_area"> <input type="image" src="<?php echo $board_skin_url; ?>/img/b_write.gif" alt="예약하기"> <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>&select=<?php echo $select; ?>"><?php echo $BUTTON; ?></a> </div></form> <script>$(document).ready(function(){ var day_trigger = $(".day_select"); day_trigger.each(function(){ var currentVal = $(this).val(); day_trigger.change(function(){ var day_selVal = $(this).val(); if (! confirm("날짜를 변경하시면 입력한 내용이 초기화 됩니다. 변경하시겠습니까?")) { $(".day_select").val(currentVal); } else{ location.replace('<?php echo G5_BBS_URL; ?>/write.php?bo_table=<?php echo $bo_table; ?>&select='+day_selVal); } }); });});</script>
■ skin.function.php
Copy
<?phpif(defined('_GNUBOARD_') == false){ exit('함수파일은 단독으로 실행할 수 없습니다.');}// 목록화면을 위한 관리자 인증세션을 저장한다if($type == 'true'){ $_SESSION['admin'] = true; goto_url(G5_BBS_URL.'/board.php?bo_table='.$bo_table);}// 달력화면을 위한 관리자 인증세션을 삭제한다if($type == 'false'){ unset($_SESSION['admin']); goto_url(G5_BBS_URL. '/board.php?bo_table=' . $bo_table);}// 버튼의 유형을 정의한다 (달력보기 or 목록보기)if($is_admin && $_SESSION['admin']){ $BUTTON = "<img src=\"{$board_skin_url}/img/b_list.gif\" alt=\"목록보기\">";}else{ $BUTTON = "<img src=\"{$board_skin_url}/img/b_calendar.gif\" alt=\"달력보기\">";}// 객실정보게시판이 정의되지 않았다면 실행을 중지한다$OBJECT = sql_fetch("SELECT * FROM {$g5['board_table']} WHERE bo_table = '{$board['bo_1']}'");if(isset($OBJECT['bo_table']) == false){ alert('객실정보게시판이 정의되지 않았습니다.');}// 필요한 변수값이 정의되지 않았다면 기본값으로 설정한다if((int)$board['bo_3'] < 1){ $board['bo_3'] = 1;}if((int)$board['bo_4'] < 1){ $board['bo_4'] = 90;}if((int)$board['bo_5'] < 1){ $board['bo_5'] = 10;}if((int)$board['bo_6'] < 1){ $board['bo_6'] = $board['bo_3'];}// 예약내역삭제일이 경과한 미입금 예약목록은 삭제한다$result = sql_query("SELECT wr_id FROM {$write_table} WHERE wr_last < DATE_SUB(now(), INTERVAL {$board['bo_6']} DAY) AND wr_7 = 'F'");while($row = sql_fetch_array($result)){ sql_query("DELETE FROM {$write_table} WHERE wr_parent = '{$row['wr_id']}'"); sql_query("DELETE FROM {$g5['board_new_table']} WHERE bo_table = '{$bo_table}' AND wr_parent = '{$row['wr_id']}'"); sql_query("UPDATE {$g5['board_table']} SET bo_count_write = bo_count_write - 1 WHERE bo_table = '{$bo_table}'");}// 예약이 가능한 일자를 추출하여 선택박스로 출력한다function optionDate($select = null){ global $g5, $board; $arr = array('0' => '(월)', '1' => '(화)', '2' => '(수)', '3' => '(목)', '4' => '(금)', '5' => '(토)', '6' => '(일)'); for($i = $board['bo_3']; $i < $board['bo_4']; $i++) { $date = sql_fetch("SELECT '".G5_TIME_YMD."' + INTERVAL {$i} DAY AS this"); $week = sql_fetch("SELECT weekday('{$date['this']}') AS this"); echo "<option value=\"{$date['this']}\""; if($date['this'] == $select) { echo ' selected'; } echo ">{$date['this']} {$arr[$week['this']]}</option>"; } return;}// 숙박이 가능한 일자를 추출하여 선택박스로 출력한다function optionStay($max){ echo "<option value=\"0\">1일</option>"; for($i = 1; $i <= $max; $i++) { $var = $i + 1; echo "<option value=\"{$i}\">{$i}박 {$var}일</option>"; } return;}// 숙박이 가능한 인원을 추출하여 선택박스로 출력한다function optionPerson($min, $max){ for($i = $min; $i <= $max; $i++) { echo "<option value=\"{$i}\">{$i}명</option>"; } return;}// 선택한 일자가 성수기인지를 추출한다 (성수기 : 1000, 비성수기 : 2000)function getSeason($select){ global $board; $result = 2000; $var = substr($select, 5, 5); $arr = explode('|', $board['bo_2']); $max = count($arr); for($i = 0; $i < $max; $i++) { list($open, $close) = explode('~', $arr[$i]); if($open <= $var && $var <= $close) { $result = 1000; break; } } return $result;}// 선택한 일자가 주말(금,토요일)인지를 추출한다 (주말 : 1000, 주중 : 2000)function getWeek($select){ list($var) = mysql_fetch_array(sql_query("SELECT weekday('{$select}')")); if($var == 4 || $var == 5) { $result = 1000; } else { $result = 2000; } return $result;}// 선택한 일자의 이용요금을 추출한다 (이용요금을 추출할 수 있는 테이블의 필드명을 리턴한다)function getPrice($select){ $arr = array( '1000' => array('1000' => 'wr_7', '2000' => 'wr_6'), '2000' => array('1000' => 'wr_5', '2000' => 'wr_4') ); $season = getSeason($select); $week = getWeek($select); $result = $arr[$season][$week]; return $result;}// 인원별, 기간별 이용요금을 산출한다function getTotal($wr_id, $select, $stay, $person){ global $g5, $board; $result = 0; $write = sql_fetch("SELECT * FROM {$g5['write_prefix']}{$board['bo_1']} WHERE wr_id = '{$wr_id}'"); for($i = 0; $i < $stay; $i++) { list($date) = mysql_fetch_array(sql_query("SELECT '{$select}' + INTERVAL {$i} DAY")); $field = getPrice($date); $result += $write[$field]; } $result += (($person - $write['wr_2']) * $write['wr_8'] * $stay); return $result;} // 선택일자에 예약된 객실의 개수를 산출한다function getRoom($day, $number){ global $class, $room; $result = 0; $max = count($class[$number]); for($i = 0; $i < $max; $i++) { $var = $class[$number][$i]; $result += count($room[$day][$var]); } return $result;}// 문자메시지를 전송합니다 (아이코드 클래스)function SMS($message, $receive = null){ global $board; list($id, $password) = explode('|', $board['bo_8']); list($phone, $mobile) = explode('|', $board['bo_9']); if(isset($receive) == false) { $receive = $mobile; } $SMS = new ICODE; $SMS -> Connect($id, $password); $SMS -> Add($phone, $receive, $message); $SMS -> Send(); return;}function BLANK($string, $size){ for($i = 0; $i < $size; $i++) { $string .= ' '; } $result = substr($string, 0, $size); return $result;}class ICODE{ var $ID; var $PASSWORD; var $SERVER; var $PORT; var $DATA; function Connect($id, $password) { $this -> ID = BLANK($id, 10); $this -> PASSWORD = BLANK($password, 10); $this -> SERVER = '211.172.232.124'; $this -> PORT = rand(7192, 7195); return; } function Add($send, $mobile, $message) { $send = str_replace('-', null, $send); $send = BLANK($send, 33); $mobile = str_replace('-', null, $mobile); $mobile = BLANK($mobile, 11); $message = stripslashes($message); $message = BLANK($message, 80); $this -> DATA = '01144 ' . $this -> ID . $this -> PASSWORD . $mobile . $send . $message; return; } function Send() { $fgets = null; $fsockopen = fsockopen($this -> SERVER, $this -> PORT); fputs($fsockopen, $this -> DATA); while(isset($fgets) == false) { $fgets = fgets($fsockopen, 30); } fclose($fsockopen); $result = substr($fgets, 0, 19); $key = '0223 00' . substr($this -> DATA, 26, 11); $this -> DATA = null; if($result != $key) { return false; } return true; }}?>
안녕하세요 ㅠㅠ
객실예약 스킨 사용하려고 하는데 금액부분에서 합산 금액이 나오지 않아
글 남깁니다...
이방법 저방법 다 써봤지만 잘 안 풀리네욤..
사용한 스킨 덧글에 있는 방법으로도 해봤지만 되질 않네요 ㅠㅠ
고수님들 도와주세요 ㅠ ㅠ
답변 1개
10년 전
<input type="checkbox" name="room[]" value="<?php echo $ROOM[$i]['wr_id']; ?>" onclick="checkTotal();" <?php echo $ROOM[$i]['disabled']; ?>>
소스중에 체크박스 클릭시 checkTotal() 스크립트가 실행되네요.
함수명으로 봐서는 이 함수에서 처리가 될듯 하네요.
자바스크립트 checkTotal 함수부분을 살펴보세요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인