예약스킨 합산 금액 ㅠㅠ
본문
■ write.skin.php
<?php
if(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">(반드시 *** 개인정보보호를 위한 휴대폰번호 노출방지 ***과 같은 형식으로 입력해주세요)</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
<?php
if(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
<input type="checkbox" name="room[]" value="<?php echo $ROOM[$i]['wr_id']; ?>" onclick="checkTotal();" <?php echo $ROOM[$i]['disabled']; ?>>
소스중에 체크박스 클릭시 checkTotal() 스크립트가 실행되네요.
함수명으로 봐서는 이 함수에서 처리가 될듯 하네요.
자바스크립트 checkTotal 함수부분을 살펴보세요.
답변을 작성하시기 전에 로그인 해주세요.