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

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

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

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

 

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

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

 

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

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

 

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

download.ok.php

Copy
<?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'].'&amp;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&amp;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&amp;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&amp;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

Copy
<?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개

채택된 답변
+20 포인트

download.ok_delete.php 구간에서

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

다른 값들은 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] => 선택수정 )
<select name="ok_yesno" id="ok_yesno">
=>
<select name="ok_yesno[<?php echo $i ?>]" id="ok_yesno_[<?php echo $i ?>]">
감사합니다 덕분에 해결했습니다!

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

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

로그인
🐛 버그신고