취소를 눌러도 데이타가 수정되어 버립니다.

버그신고
취소를 눌러도 데이타가 수정되어 버립니다.

QA

취소를 눌러도 데이타가 수정되어 버립니다.

본문

<? 
$g4_path = "../../.."; 
include_once("$g4_path/common.php"); 
?> 

 

<meta http-equiv="content-type" content="text/html; charset=utf-8"> 
<script language='JavaScript'> 
if (!confirm('현재 진행상황을 수정하시겠습니까?')) 
history.back(); 
</script> 

 

<? 
$sql  = " update g4_write_$bo_table set ca_name = '$ca_name' where wr_id='$wr_id' "; 
sql_query($sql); 

goto_url("/V2/bbs/board.php?bo_table=$bo_table");
?> 

 

-------------------------------------------------------------------------------

 

"현재 진행상황을 수정하시겠습니까?"

 

이 메세지가 뜨긴 하는데 "취소"를 눌러도 $ca_name에 데이타가 입력되어 버립니다.

 

아직 배우는 초보라서 연구하고 있지만, 힘드네요. 

뭐가 잘못 되었을까요?

이 질문에 댓글 쓰기 :

답변 4

당연합니다

자바스크립트 아래의 쿼리문은 자바스크립트 응답과 상관 없이 그냥 페이지를 여는 순간 수정 되어버린 상태입니다

$ca_name, $wr_id 등이 어디서 오는 것인지 모르겟으나 아래 처럼 조건을 주어야 합니다

 

if (!confirm('현재 진행상황을 수정하시겠습니까?')) history.back(); 

else location.href="?wk=U";

 

<? 

if($wk=='U'){
$sql  = " update g4_write_$bo_table set ca_name = '$ca_name' where wr_id='$wr_id' "; 
sql_query($sql); 

goto_url("/V2/bbs/board.php?bo_table=$bo_table");

}
?> 

감사합니다. 균이님.

수많은 답변글. 초보로서 늘 감사히 보고 있습니다.

그저, 감사할 따름입니다.

 
저는 리스트에서 일반 회원의 수정이 가능하게끔 하려고 합니다.
여기 저기에서 수집한 내용으로 짜집기를 하였습니다.
 
list.skin.php 입니다.

<? if($member[mb_level]>2) { ?>
<select onchange="location='<?=$board_skin_path?>/ca_name_up.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>&ca_name='+this.value;">">
<option value='견적' <? if($list[$i][ca_name] == '견적') echo 'selected'; ?>>견적</option>
<option value='접수' <? if($list[$i][ca_name] == '접수') echo 'selected'; ?>>접수</option>
<option value='제작중' <? if($list[$i][ca_name] == '제작중') echo 'selected'; ?>>제작중</option>
<option value='작업완료' <? if($list[$i][ca_name] == '작업완료') echo 'selected'; ?>>작업완료</option>
<option value='납품완료' <? if($list[$i][ca_name] == '납품완료') echo 'selected'; ?>>납품완료</option>
<option value='보류' <? if($list[$i][ca_name] == '보류') echo 'selected'; ?>>보류</option>
<option value='취소' <? if($list[$i][ca_name] == '취소') echo 'selected'; ?>>취소</option>
</select>
<? } ?>

 

 

ca_name_up.php 입니다.
<?
$g4_path = "../../..";
include_once("$g4_path/common.php");
?>

<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script language='JavaScript'>
if (!confirm('현재 진행상황을 수정하시겠습니까?')) history.back();
else location.href="?wk=U";
</script>

<?
if($wk=='U'){
$sql  = " update g4_write_$bo_table set ca_name = '$ca_name' where wr_id='$wr_id' ";
sql_query($sql);
goto_url("/V2/bbs/board.php?bo_table=$bo_table");
}
?>
 

이렇게 입력하여 업로드후 테스트를 하였습니다. 셀렉트박스를 실행 시켜봅니다.
"현재 진행상황을 수정하시겠습니까?"에서 
확인을 클릭하면 업데이트가 안되고 취소를 클릭하면
"ca_name_up.php?wk=U" 이 무한 반복됩니다.

수정하겠냐는 것을 list에서 처리하세요
그건데 $board_skin_path<--이것을 사용하면 경로문제로 ca_name_up.php실행이 안될 것 같은데요
안되면 $board_skin_url <-- 이것을 넣으세요
<select onchange="list_update(<?=$list[$i][wr_id]?>, this.value)">
~
~


<script>
function list_update(wr_id, ca_name){
 if (!confirm('현재 진행상황을 수정하시겠습니까?')) return;
 location.href ="<?=$board_skin_url?>/ca_name_up.php?bo_table=<?=$bo_table?>&wr_id="+wr_id+"&ca_name="+ca_name
}
</script>

ca_name_up.php 에서
자바스크립트 삭제

php부분은 아래처럼
<?
if(!$bo_table || !$wr_id || !$ca_name ) alert("필요 정보 오류");

sql_query(" update $write_table set ca_name = '$ca_name' where wr_id='$wr_id' ");
goto_url("/V2/bbs/board.php?bo_table=$bo_table");
?>
이렇게 하면 수정은 되겠는데 자신의 게시물만 수정하도록 되어야 하지않나요?
리스트에서도 자신의 게시물에서만 list_update함수가 실행 되어야 할 것 같습니다만

균이님.
장문의 답변을 해주셔서 감사합니다.
덕분에 해결을 보았습니다.

균이님은 수많은 회원들의 질문들에 대해
명품 답변을 해주셔서 제 기억에 많이 남는 닉네임입니다.
고맙습니다.

블랙캣77님 먼저 답변 주셔서 감사합니다.

 

if (!confirm('현재 진행상황을 수정하시겠습니까?')) 

if (confirm('현재 진행상황을 수정하시겠습니까?')) 

 

! 가 있으나 없으나 증상은 똑같습니다.

"취소"를 선택해도 등록이 되어 버립니다.

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

회원로그인

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