테스트 사이트 - 개발 중인 베타 버전입니다

리스트에서 여분필드 수정 채택완료

사랑입니당 5년 전 조회 3,024

안녕하세요.

 

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

 

일전의 답글의 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=">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

</p>

<p>    <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> </p>

<p>

 

 

 

 

 

 

// bbs/board_list_update.php

</p>

<p><?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('올바른 방법으로 이용해 주세요.');

}

?></p>

<p>

 

 

 

 

 

 

// bbs/list_update.php

</strong></p>

<p><?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); 

?> </p>

<p><b>

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

답변 3개

채택된 답변
+20 포인트
5년 전

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

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

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

답변에 대한 댓글 1개

사랑입니당
5년 전
답변 감사드립니다.

결국 view 부분으로 옮겨서 처리했습니다^^

비록 해결되진 못했지만 귀한 시간 내주신 메이드님 감사합니다.

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

R

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

 

// 보드스킨 list.skin.php

</strong>

<?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) { ?> 이 끝나는 

</p>

<p><?php } ?></p>

<p>

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

</p>

<p><?php $list_count = $i; } ?>

<input type="hidden" name="list_count" id="list_count" value="<?php echo $list_count ?>"></p>

<p>

 

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

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p>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); 

?></p>

<p>

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

답변에 대한 댓글 1개

사랑입니당
4년 전
다른 분들이 보고 도움을 많이 얻어 가셨으면 합니다.

늦은 인사지만 도움 감사드립니다.

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

5년 전

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

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

답변에 대한 댓글 2개

사랑입니당
5년 전
답변 감사드립니다.

for 문 내에서 찍어도 마찬가지 현상이 일어납니다..
메이드
5년 전
올려 주신 글만으로는 오류를 찾기가 어렵네요.
리스트 파일에서 문제가 있지 않나 싶긴 한데..

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

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

로그인

© 2025 SIRSOFT. All rights reserved.