리스트에서 여분필드 수정

리스트에서 여분필드 수정

QA

리스트에서 여분필드 수정

본문

안녕하세요.

 

현재 리스트에서 여분필드 수정건 때문에 자꾸 질문 글을 올리게 되네요. 

 

일전의 답글의 ifelse님께서 조언해주신 덕분에 어느정도 원하는 결과물이 나왔는데요 ^^

 

https://sir.kr/qa/268657?stx=%EC%84%A0%ED%83%9D%EC%88%98%EC%A0%95&sst=wr_num&unanswered=0&s_tag=

 

위 링크에서 나온대로 list.skin.php 파일에 코드를 넣어주고, bbs/list_update.php 파일을 따로 생성해줘서 아래 코드를 넣어줬는데요.

 

체크를 하고 수정을 해도 수정이 이상하게 되길래, alert를 찍어서 확인해보니 chk_wr_id 체크값이 자꾸 2씩 증가하고 option값이 이상한걸로 변경되어서 적용되기도 하더군요.

 

이 현상을 해결할 수 있는 방법이 있을까요?

 

아래는 코드 내용입니다.

 

 

// 보드스킨 list.skin.php


    <select id="wr_1[<?echo $i?>]" name="wr_1[<?echo $i?>]"> 
        <option value="개통완료" <? if ($list[$i]['wr_1']=="개통완료") echo 'selected'; ?>>개통완료</option>
        <option value="방문예정" <? if ($list[$i]['wr_1']=="방문예정") echo 'selected'; ?>>방문예정</option>
        <option value="상담진행" <? if ($list[$i]['wr_1']=="상담진행") echo 'selected'; ?>>상담진행</option>
        <option value="상담요청" <? if ($list[$i]['wr_1']=="상담요청") echo 'selected'; ?>>상담요청</option>
</select> 

 

 

 

 

 

 

// bbs/board_list_update.php


<?php
include_once('./_common.php');
$count = count($_POST['chk_wr_id']);
if(!$count) {
    alert($_POST['btn_submit'].' 하실 항목을 하나 이상 선택하세요.');
}
if($_POST['btn_submit'] == '선택삭제') {
    include './delete_all.php';
} else if($_POST['btn_submit'] == '선택복사') {
    $sw = 'copy';
    include './move.php';
} else if($_POST['btn_submit'] == '선택이동') {
    $sw = 'move';
    include './move.php';
} else if($_POST['btn_submit'] == '선택수정') {
    include './list_update.php';
} else {
    alert('올바른 방법으로 이용해 주세요.');
}
?>

 

 

 

 

 

 

// bbs/list_update.php


<?php 
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 
 
if(!$is_admin) 
    alert('접근 권한이 없습니다.', G5_URL); 
    for ($i=0; $i<count($_POST['chk_wr_id']); $i++){ 
        $k = $_POST['chk_wr_id'][$i]; 
        $j = $_POST['wr_1'][$i]; 
        $sql = " update $write_table set wr_1= '$j' where wr_id= '$k' "; 
        $result = sql_query($sql); 
    } 
    alert($sql);
    goto_url('./board.php?bo_table='.$bo_table.'&subject='.$subject.'&page='.$page.$qstr); 
?> 

이 질문에 댓글 쓰기 :

답변 3

아마도 리스트 파일에서 값을 넘기실때 name="wr_1[<?echo $i?>]"> 의 값과

for 문 안에서의 $i 값이 일치하지 않아서 생기는 것 같습니다.

같은 문제점으로 고민을 하다 뭔가 값이 제대로 넘어오지 않는 것 같아서 이리 저리 확인해 보다 아래와 같이 수정하니 해결이 되었습니다.  공개된 소스에 도움을 받았습니다. 감사합니다.

 

// 보드스킨 list.skin.php


<?php if ($is_checkbox) { ?>
<td>
    <label for="chk_wr_id_<?php echo $i; ?>" class="sound_only"><?php echo $list[$i]['subject']; ?></label>
    <label class="checkbox"><?php //echo $list[$i]['wr_id']; ?>
        <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id']; ?>" id="chk_wr_id_<?php echo $i; ?>"><i></i>
        <input type="hidden" name="wr_id[<?php echo $i; ?>]" id="wr_id[<?php echo $i; ?>]" value="<?php echo $list[$i]['wr_id']; ?>"> <!-- 이 줄 추가 -->
    </label>
</td>

 

// 보드스킨 list.skin.php

<?php if ($is_checkbox) { ?> 이 끝나는 


<?php } ?>

를 아래와 같이 수정합니다.


<?php $list_count = $i; } ?>
<input type="hidden" name="list_count" id="list_count" value="<?php echo $list_count ?>">

 

// bbs/list_update.php 를 아래와 같이 수정합니다.


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if(!$is_admin)
    alert('접근 권한이 없습니다.', G5_URL);
    $list_count = $_POST['list_count'];
    for ($i=0; $i<=$list_count; $i++){
        $wr_id = $_POST['wr_id'][$i];
        $wr_1 = $_POST['wr_1'][$i];
        $sql = " update $write_table set wr_1 = '$wr_1' where wr_id='$wr_id' ";
        $result = sql_query($sql);
    }
  alert($sql);
  goto_url('./board.php?bo_table='.$bo_table.'&subject='.$subject.'&page='.$page.$qstr); 
?>

일단 for 문 안에서 $sql 찍어보심이...

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

회원로그인

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