미채택 완료

배송지 목록에서 기본배송지 클릭 시 변경이 안됩니다.

제목 그대로 입니다.

오류뜨는것도 없어서 정말 답답하네요

배송지 변경은 정상적으로 됩니다 ㅠ

혹시 원래 없는 기능인건지 제가 소스를 잘못건들였는지 한번 봐주실 수 있을까요?

버튼이 클릭되게 되어있는거보면 제가 잘못건들였을 확률이 큰거같은데

//orderaddress.php

Copy
<?php

include_once('./_common.php');

 

if(!$is_member)

    alert_close('회원이시라면 회원로그인 후 이용해 주십시오.');

 

$ad_id = isset($_REQUEST['ad_id']) ? (int) $_REQUEST['ad_id'] : 0;

 

if($w == 'd') {

    $sql = " delete from {$g5['g5_shop_order_address_table']} where mb_id = '{$member['mb_id']}' and ad_id = '$ad_id' ";

    sql_query($sql);

    goto_url($_SERVER['SCRIPT_NAME']);

}

 

$sql_common = " from {$g5['g5_shop_order_address_table']} where mb_id = '{$member['mb_id']}' ";

 

$sql = " select count(ad_id) as cnt " . $sql_common;

$row = sql_fetch($sql);

$total_count = $row['cnt'];

 

$rows = $config['cf_page_rows'];

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산

if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)

$from_record = ($page - 1) * $rows; // 시작 열을 구함

 

$sql = " select *

            $sql_common

            order by ad_default desc, ad_id desc

            limit $from_record, $rows";

 

$result = sql_query($sql);

 

if(!sql_num_rows($result))

    alert_close('배송지 목록 자료가 없습니다.');

 

$order_action_url = G5_HTTPS_SHOP_URL.'/orderaddressupdate.php';

 

if (G5_IS_MOBILE) {

    include_once(G5_MSHOP_PATH.'/orderaddress.php');

    return;

}

 

// 테마에 orderaddress.php 있으면 include

if(defined('G5_THEME_SHOP_PATH')) {

    $theme_orderaddress_file = G5_THEME_SHOP_PATH.'/orderaddress.php';

    if(is_file($theme_orderaddress_file)) {

        include_once($theme_orderaddress_file);

        return;

        unset($theme_orderaddress_file);

    }

}

 

$g5['title'] = '배송지 목록';

include_once(G5_PATH.'/head.sub.php');

?>

<form name="forderaddress" method="post" action="<?php echo $order_action_url; ?>" autocomplete="off">

<div id="sod_addr" class="new_win">

 

    <h1 id="win_title">배송지 목록</h1>

    <div class="tbl_head03 tbl_wrap">

        <table>

        <thead>

        <tr>

            <th scope="col">배송지명</th>

            <th scope="col">이름</th>

            <th scope="col">배송지정보</th>

            <th scope="col">관리</th>

        </tr>

 

        </thead>

        <tbody>

        <?php

        $sep = chr(30);

        for($i=0; $row=sql_fetch_array($result); $i++) {

            $addr = $row['ad_name'].$sep.$row['ad_tel'].$sep.$row['ad_hp'].$sep.$row['ad_zip1'].$sep.$row['ad_zip2'].$sep.$row['ad_addr1'].$sep.$row['ad_addr2'].$sep.$row['ad_addr3'].$sep.$row['ad_jibeon'].$sep.$row['ad_subject'];

            $addr = get_text($addr);

        ?>

        <tr>

            <td class="td_sbj">

                <div class="chk_box">

                    <input type="hidden" name="ad_id[<?php echo $i; ?>]" value="<?php echo $row['ad_id'];?>">

                    <input type="checkbox" name="chk[]" value="<?php echo $i;?>" id="chk_<?php echo $i;?>" class="selec_chk">

                    <label for="chk_<?php echo $i;?>"><span></span><b class="sound_only">배송지선택</b></label>

                </div>

               

                <label for="ad_subject<?php echo $i;?>" class="sound_only">배송지명</label>

                <input type="text" name="ad_subject[<?php echo $i; ?>]" id="ad_subject<?php echo $i;?>" class="frm_input" size="12" maxlength="20" value="<?php echo get_text($row['ad_subject']); ?>">

            </td>

 

            <td class="td_name"><?php echo get_text($row['ad_name']); ?></td>

            <td class="td_address">

                <?php echo print_address($row['ad_addr1'], $row['ad_addr2'], $row['ad_addr3'], $row['ad_jibeon']); ?><br>

                <span class="ad_tel"><?php echo $row['ad_tel']; ?> </span>

 

            </td>

            <td class="td_mng">

                <input type="hidden" value="<?php echo $addr; ?>" >

                <button type="button" class="sel_address mng_btn">선택</button>

                <a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?w=d&amp;ad_id=<?php echo $row['ad_id']; ?>" class="del_address mng_btn">삭제</a>

                <input type="radio" name="ad_default" value="<?php echo $row['ad_id'];?>" id="ad_default<?php echo $i;?>" <?php if($row['ad_default']) echo 'checked="checked"';?>>

                <label for="ad_default<?php echo $i;?>" class="default_lb mng_btn">기본배송지</label>

 

            </td>

        </tr>

 

        <?php

        }

        ?>

        </tbody>

        </table>

    </div>

 

    <div class="win_btn">

        <input type="submit" name="act_button" value="선택수정" class="btn_submit">

        <button type="button" onclick="self.close();" class="btn_close">닫기</button>

    </div>

</div>

</form>

 

<?php echo get_paging($config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>

 

<script>

$(function() {

    $(".sel_address").on("click", function() {

        var addr = $(this).siblings("input").val().split(String.fromCharCode(30));

 

        var f = window.opener.forderform;

        f.od_b_name.value        = addr[0];

        f.od_b_tel.value         = addr[1];

        // f.od_b_hp.value          = addr[2];

        f.od_b_zip.value         = addr[3] + addr[4];

        f.od_b_addr1.value       = addr[5];

        f.od_b_addr2.value       = addr[6];

        f.od_b_addr3.value       = addr[7];

        f.od_b_addr_jibeon.value = addr[8];

        f.ad_subject.value       = addr[9];

 

        var zip1 = addr[3].replace(/[^0-9]/g, "");

        var zip2 = addr[4].replace(/[^0-9]/g, "");

 

        if(zip1 != "" && zip2 != "") {

            var code = String(zip1) + String(zip2);

 

            if(window.opener.zipcode != code) {

                window.opener.zipcode = code;

                window.opener.calculate_sendcost(code);

            }

        }

 

        window.close();

    });

 

    $(".del_address").on("click", function() {

        return confirm("배송지 목록을 삭제하시겠습니까?");

    });

 

    // 전체선택 부분

    $("#chk_all").on("click", function() {

        if($(this).is(":checked")) {

            $("input[name^='chk[']").attr("checked", true);

        } else {

            $("input[name^='chk[']").attr("checked", false);

        }

    });

 

    $(".btn_submit").on("click", function() {

        if($("input[name^='chk[']:checked").length==0 ){

            alert("수정하실 항목을 하나 이상 선택하세요.");

            return false;

        }

    });

 

});

</script>

 

<?php

include_once(G5_PATH.'/tail.sub.php');
Copy
//oderaddressupdate.php

<?php

include_once('./_common.php');

 

if($is_guest)

    die('회원 로그인 후 이용해 주십시오.');

 

$count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;

 

if (!$count) {

    alert('수정하실 항목을 하나이상 선택하세요.');

}

 

if ($is_member && $count) {

    for ($i=0; $i<$count; $i++)

    {

        // 실제 번호를 넘김

        $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;

        $ad_id = isset($_POST['ad_id'][$k]) ? (int) $_POST['ad_id'][$k] : 0;

 

        $ad_subject = isset($_POST['ad_subject'][$k]) ? clean_xss_tags($_POST['ad_subject'][$k]) : '';

 

        $sql = " update {$g5['g5_shop_order_address_table']}

                    set ad_subject = '".sql_real_escape_string($ad_subject)."' ";

 

        if(!empty($_POST['ad_default']) && $ad_id === $_POST['ad_default']) {

            sql_query(" update {$g5['g5_shop_order_address_table']} set ad_default = '0' where mb_id = '{$member['mb_id']}' ");

 

            $sql .= ", ad_default = '1' ";

        }

 

        $sql .= " where ad_id = '".$ad_id."'

                    and mb_id = '{$member['mb_id']}' ";

 

        sql_query($sql);

    }

}

 

goto_url(G5_SHOP_URL.'/orderaddress.php');
|

답변 2개

Copy
$ad_id === $_POST['ad_default']
이 부분에서 걸러질까요..? $ad_id 는 윗줄에서 int로 형변환 시켜주는데 넘어온 $_POST 값은 문자열이라..? === 을 == 으로 바꿔서 테스트해보시는 것도 좋은 것 같습니다!
2025-01-18 (토) 17:16:04

원 소스파일을 업데이트를 해보시고 테스트해보시기 바랍니다 그리고 이후 정확한 오류내용이 무엇인지 찾아서 해결을 하셔야할 듯 으로 보입니다.

답변을 작성하려면 로그인이 필요합니다.