submit 버튼으로 선택 수정 값이 안 들어가요

submit 버튼으로 선택 수정 값이 안 들어가요

QA

submit 버튼으로 선택 수정 값이 안 들어가요

본문

관리자페이지 내에서 셀렉트 박스로 값을 선택해놓고

맨 앞 체크박스를 클릭하고 선택수정(submit버튼) 을 누르면 g5_downok 테이블 내

ok_yesno 컬럼만 업데이트 되도록 하고 싶습니다.

 

문제는 셀렉트 박스에서 값을 지정해놓고 바꾼 행의 체크박스를 선택해놓고 선택수정버튼을

클릭하면 ok_yesno 컬럼이 정상적으로 업데이트 되지 않고 값이 사라져 버립니다.

 

그런데, A.I 걸려있는 admin_id가 1,2 인 행들은 전체 선택을 하고 수정버튼을 누르면

한번씩 업데이트가 됩니다.

 

규칙이 보이질 않아서 수정도 못하는데 도움 주시면 감사하겠습니다.

download.ok.php


<?php 
<form name="fboardlist" id="fboardlist" method="post" action="./download.ok_delete.php" onsubmit="return fboardlist_submit(this);">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">
 
<div class="tbl_head01 tbl_wrap">
    <table>
    <caption><?php echo $g5['title']; ?> 목록</caption>
    <thead>
    <tr>
        <th scope="col">
            <label for="chkall" class="sound_only">다운로드 허가 전체</label>
            <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
        </th>
        <th scope="col"><?php echo subject_sort_link('mb_id') ?>회원아이디 </a></th>
        <th scope="col">고유번호</th>
        <th scope="col">이름</th>
        <th scope="col"><?php echo subject_sort_link('ok_bo_name') ?>회원 소속</a></th>
        <th scope="col"><?php echo subject_sort_link('ok_subject') ?>제목</a></th>
        <th scope="col"><?php echo subject_sort_link('ok_filename') ?>파일</a></th>
        <th scope="col"><?php echo subject_sort_link('ok_time') ?>일시</a></th>
        <th scope="col"><?php echo subject_sort_link('ok_yesno') ?>허가</th>
       
    </tr>
    </thead>
    <tbody>
    <?php
    for ($i=0; $row=sql_fetch_array($result); $i++) {
        if ($i==0 || ($row2['mb_id'] != $row['mb_id'])) {
            $sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";
            $row2 = sql_fetch($sql2);
        }
 
        $mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']);
 
        $link1 = $link2 = '';
        if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) {
            $link1 = '<a href="'.G5_BBS_URL.'/board.php?bo_table='.$row['po_rel_table'].'&wr_id='.$row['po_rel_id'].'" target="_blank">';
            $link2 = '</a>';
        }
 
        $expr = '';
        if($row['po_expired'] == 1)
            $expr = ' txt_expired';
 
        $bg = 'bg'.($i%2);
    ?>
 
    <tr class="<?php echo $bg; ?>">
        <td class="td_chk">
            <input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>">
            <input type="hidden" name="admin_id[<?php echo $i ?>]" value="<?php echo $row['admin_id'] ?>" id="admin_id_<?php echo $i ?>">
            <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['po_content'] ?> 내역</label>
            <input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
        </td>
        <td class="td_mbid"><a href="?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td> <!--회원아이디-->
        <td class="td_mbname"><?php echo $row['ok_id'] ?></td> <!--고유번호-->
        <td class="td_name sv_use"><div><?php echo $mb_nick ?></div></td> <!--이름-->
        <td class="td_pt_board"><?php echo $row['ok_bo_name'] ?></td> <!--게시판-->
        <td class="td_pt_log"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $row['bo_table'] ?>&wr_id=<?php echo $row['wr_id'] ?>" target="_blank"><?php echo $row['ok_subject'] ?></a></td><!--제목-->
        <td class="td_pt_log"><a href="?sfl=ok_filename&stx=<?php echo $row['ok_filename'] ?>"><?php echo $row['ok_filename'] ?></a></td> <!--파일명-->
        <td class="td_datetime"><?php echo $row['ok_time'] ?></td><!--일시-->
        <td class="td_yesno">        
            <select name="ok_yesno" id="ok_yesno">
                <option value="0" <?php echo get_selected($row['ok_yesno'], '0', true);?>>대기중</option>
                <option value="1" <?php echo get_selected($row['ok_yesno'], '1');?>>허가</option>
                <option value="2" <?php echo get_selected($row['ok_yesno'], '2');?>>거절</option>
            </select>
        </td><!--허가-->
 
    </tr>
 
    <?php
    }
 
    if ($i == 0)
        echo '<tr><td colspan="'.$colspan.'" class="empty_table">다운로드 허가 요청이 없습니다.</td></tr>';
    ?>
    </tbody>
    </table>
</div>
 
<div class="btn_list01 btn_list">
    <input type="submit" class="btn_confirm01" name="act_button" value="선택삭제" onclick="document.pressed=this.value">
    <input type="submit" class="btn_confirm02" name="act_button" value="선택수정" onclick="document.pressed=this.value">
</div>
 
</form>
 
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&page="); ?>
 
<script>
function fboardlist_submit(f){
    if (!is_checked("chk[]")) {
        alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
        return false;
    }
 
    if(document.pressed == "선택삭제") {
        if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
            return false;
        }
    }
    if(document.pressed == "선택수정") {
        if(!confirm("선택한 자료를 정말 수정하시겠습니까?")) {
            return false;
        }
    }

 
    return true;
}
 
</script>
?> 

 

download.ok_delete.php


<?php
$sub_menu = '300900';
include_once('./_common.php');
 
check_demo();
 
auth_check($auth[$sub_menu], 'r,d');
 
check_admin_token();
 
$count = count($_POST['chk']);
$act_button     = isset($_POST['act_button']) ? strip_tags($_POST['act_button']) : '';
 
if(!$count)
    alert($act_button.' 하실 항목을 하나 이상 체크하세요.');
 
if ($act_button === "선택수정") {
    auth_check($auth[$sub_menu], 'w');
 
    for ($i=0; $i<$count; $i++) {
        // 실제 번호를 넘김
        $k = $_POST['chk'][$i];
 
        $post_ok_yesno = $_POST['ok_yesno'][$k];
        //내역정보
        $sql = " select * from g5_downok where admin_id = '{$_POST['admin_id'][$k]}' ";
        $row = sql_fetch($sql);
 
        if(!$row['admin_id']) continue;
   
    //내역수정
    $sql = " update g5_downok set ok_yesno = '$post_ok_yesno' where admin_id = '{$_POST['admin_id'][$k]}' ";
        sql_query($sql);
   
    }
} elseif ($act_button === "선택삭제"){
 
for ($i=0; $i<$count; $i++)
{
    // 실제 번호를 넘김
    $k = $_POST['chk'][$i];
 
    //내역정보
    $sql = " select * from g5_downok where admin_id = '{$_POST['admin_id'][$k]}' ";
    $row = sql_fetch($sql);
 
    if(!$row['admin_id']) continue;
 
    //내역삭제
    $sql = " delete from g5_downok where admin_id = '{$_POST['admin_id'][$k]}' ";
    sql_query($sql);
 
}
}
goto_url('./download.ok.php?'.$qstr);
?> 

이 질문에 댓글 쓰기 :

답변 1

download.ok_delete.php 구간에서

print_r($_POST); 해서 넘어오는 값을 확인해 보시고

sql문을 echo하여 직접 찍어서 확인해 보셔야 할 듯 해요

다른 값들은 array 로 들어가는데 필요한 ok_yesno 부분만 array로 안 들어가네요

나온 값은  아래와 같습니다

( [sst] => admin_id [sod] => desc [sfl] => [stx] => [page] => 1 [token] => 5e1aba7e7c2504c415b97ef5536117e4 [chkall] => 1 [mb_id] => Array ( [0] => 222016 [1] => 222016 [2] => 222016 [3] => 222016 [4] => 222016 [5] => 222016 ) [admin_id] => Array ( [0] => 6 [1] => 5 [2] => 4 [3] => 3 [4] => 2 [5] => 1 ) [chk] => Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 ) [ok_yesno] => 1 [act_button] => 선택수정 )

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

회원로그인

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