예약스킨 합산 금액 ㅠㅠ

예약스킨 합산 금액 ㅠㅠ

QA

예약스킨 합산 금액 ㅠㅠ

본문

■ 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;
    }
}
?>
​​

 

 

안녕하세요 ㅠㅠ

 

객실예약 스킨 사용하려고 하는데 금액부분에서 합산 금액이 나오지 않아

글 남깁니다...

 

이방법 저방법 다 써봤지만 잘 안 풀리네욤..

 

http://sir.co.kr/bbs/board.php?bo_table=g5_skin&wr_id=319&sca=&sfl=wr_subject||wr_content&stx=%EA%B0%9D%EC%8B%A4

 

사용한 스킨 덧글에 있는 방법으로도 해봤지만 되질 않네요 ㅠㅠ

 

고수님들 도와주세요 ㅠ ㅠ 

이 질문에 댓글 쓰기 :

답변 1

<input type="checkbox" name="room[]" value="<?php echo $ROOM[$i]['wr_id']; ?>" onclick="checkTotal();" <?php echo $ROOM[$i]['disabled']; ?>> 

 

소스중에 체크박스 클릭시 checkTotal() 스크립트가 실행되네요.

함수명으로 봐서는 이 함수에서 처리가 될듯 하네요.

자바스크립트 checkTotal 함수부분을 살펴보세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 8
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT