리스트에서 특정 필드 수정하기에 대해서 채택완료
리스트 화면에서 특정 필드의 값을 수정하기 위해 아래와 같이 진행했습니다.
그런데, "수정" 버턴을 누르면 "목록에서 항목을 선택하세요"라는 메세지가 뜨면서 수정이 되지 않습니다.
어디가 잘못되었는지 모르겠습니다.
list.skin.php 파일에서
$(document).ready(function(){
$("#list_select_").click(function(){
var bo_table = "=$bo_table?>";
var wr_id = "";
var value0 = $("#wr_3_").val();
$.ajax({
type: "POST",
url: "/list_up.php",
data: { bo_table:bo_table, wr_id:wr_id, wr_3:value0 },
success: function () {
//do somthing here
location.reload();
alert("수정되었습니다")
}
});
});
});
그리고, list_up.php 파일에는 아래와 같은 내용을 넣었습니다.
include_once('./_common.php');
$sql = " update g5_write_{$_POST[bo_table]}
set wr_3 = '{$_POST[wr_3]}'
where wr_id = '{$_POST[wr_id]}' ";
sql_query($sql);
답변 4개
<script type="text/javascript">
var wr3_chk = function(wr_num,wr_id,field) {
$.ajax({
type:"post",
url:"<?php echo $board_skin_url?>/list_up.php",
data:
{
bo_table : g5_bo_table,
wr_num : wr_num,
wr_id : wr_id,
field : field
},
dataType:"html",
success:function(res){
$("#wr_3_"+wr_num).val(res);
if(res)
alert(res+"(으)로 변경되었습니다");
else
alert("변경 실패");
}
});
}
</script>
<select name="wr_3" id="wr_3_<?php echo $i;?>" onchange="wr3_chk('<?php echo $i;?>','<?php echo $list[$i]['wr_id']?>',this.value);" required class="form-control input-sm">
<option value="">확인중</option>
<option value="50" <? if($list[$i]['wr_3'] == '50') echo " selected "; ?>>예약완료</option>
<option value="10" <? if($list[$i]['wr_3'] == '10') echo " selected "; ?>>예약취소</option>
<option value="70" <? if($list[$i]['wr_3'] == '70') echo " selected "; ?>>환불완료</option>
</select>
<?php
include_once("경로에 맞는 설정/_common.php");
$write_table = $g5['write_prefix'].$POST['bo_table'];
$sql = " update ".$write_table." set wr_3 = '".$_POST['wr_3']."' where wr_id = '".$_POST['wr_id']."' ";
sql_query($sql);
$sql = "select wr_3 from ".$write_table." where wr_id = '".$POST['wr_id']."' ";
$row = sql_fetch($sql);
if($row['wr_3'])
echo $row['wr_3'];
else
echo '';
?>
답변에 대한 댓글 5개
ajax 부분에서 field 부분에
field : field ==> wr_3 : field
이렇게 바꾸시던지 아니면
list_up.php 에서
$_POST['wr_3'] ==> $_POST['field'] 로 바꾸세요
bo_table : test2
wr_num : 1
wr_id : 1
wr_3 : 50
이라는 값이 넘거가고 있습니다
list_up.php 페이지에서 틀린 부분이 있는지 확인을 해보셔야 할 듯 합니다
제가 적어드린 대로 복사 하셨다면
$sql = "select wr_3 from ".$write_table." where wr_id = '".$POST['wr_id']."' ";
이부분에서 $_POST 인데 $POST라고 적었군요 수정해보세요
드디어 해결이 되었습니다.
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 5개
"목록에서 항목을 선택하세요"라는 메세지는 뜨지 않네요.
하지만, 수정이 되지는 않습니다.
php 코드가 들어간 거 말구요 웹 페이지에서 렌더링이 끝난 화면요.
소스 보기로 해서 나오는 코드
아니면 저 코드가 있는 페이지 주소를 알려 주세요.
http://samsungedu.kr/sge/v2016/bbs/board.php?bo_table=test2
id : test
pw : 1234
입니다.
select 이렇게 바꿔 보세요.
<button class="form-control btn-submit" id="list_select_<?=$list[$i]['wr_id']?>" type="button">수정</button>
button 이렇게 바꾸시고.
아래 스크립트는 제일 밑으로 빼세요.
지금은 보니 for 안에 넣으셨네요.
[code]
$(function() {
$("button.btn-submit").on("click", function() {
var wrid = $(this).attr("id").split("_");
var value0 = $("#wr_3_" + wrid[2]).val();
$.ajax({
... 생략 ...
data : {
bo_table : bo_table,
wr_id : wrid[2],
wr_3 : value0
}
});
});
});
[/code]
적용해 보니 버튼이 동작을 하지 않아서요. ;;
댓글을 작성하려면 로그인이 필요합니다.
list_up.php 파일의 위치가 이라면
list_up.php 파일에서 불러오는 _common.php 파일이 이곳에 존재하나요?
아니면 root 폴더의 _common을 불러오나요?
일단은 경로를 확인해봐야 하겠네요
ajax넘겨지는 부분 파이어폭스나 크록 요소검사의 네트웍 부분에서 볼 수있습니다
답변에 대한 댓글 2개
감사합니다.
include_once("../../../common.php");
댓글을 작성하려면 로그인이 필요합니다.
사용하던 스킨이있는데
참고해서 만들어보세요^^
비밀글을 등록하고 비밀글을 공개글로 전환하는 스킨을 만들어서 사용중이였습니다.
조금 응용하시면 가능하시리라 생각되네요
list.skin.php에 form안에 추가
</span></p><pre style="line-height: normal;"><select id="wr_option[<?echo $i?>]" name="wr_option[<?echo $i?>]">
<option value="">노출</option>
<option value="secret" <?if($list[$i]['wr_option']=="secret") echo "selected"; ?>>비밀글</option>
</select>
<ul class="btn_bo_adm">
<li><input type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"></li>
<li><input type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"></li>
<li><input type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"></li>
<li><input type="submit" name="btn_submit" value="선택수정" onclick="document.pressed=this.value"></li>
</ul></pre><p><span style="font-family: dotum; font-size: 12px; line-height: 20.4px; background-color: rgb(255, 255, 255);">
www/bbs/board_list_update.php에 추가
</span></p><pre style="line-height: normal;"><?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';
}if($_POST['btn_submit'] == "선택수정"){//수정하기위해 추가코드
include './change.php';
} else {
alert('올바른 방법으로 이용해 주세요.');
}
?></pre><p><span style="font-family: dotum; font-size: 12px; line-height: 20.4px; background-color: rgb(255, 255, 255);">
www/bbs/change.php 파일 생성
</span></p><pre style="line-height: normal;"><?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_option'][$i];
$sql = " update $write_table set wr_option='$j' where wr_id='$k' ";
$result = sql_query($sql);
}
goto_url('./board.php?bo_table='.$bo_table.'&page='.$page.$qstr);
?></pre><p><span style="font-family: dotum; font-size: 12px; line-height: 20.4px; background-color: rgb(255, 255, 255);">
답변에 대한 댓글 1개
<?php if ($list_href || $is_checkbox || $write_href) { ?>
<?php if ($is_checkbox) { ?>
<form action="./board_list_update.php" method="post">
<select id="wr_1[<?echo $i?>]" name="wr_1[<?echo $i?>]">
<option value="">주문상태변경</option><option value="입고중" <?if($list[$i]['wr_1']=="입고중") echo "selected"; ?>>입고중</option>
</select>
<ul>
<li><input type="submit" name="btn_submit" value="선택수정" onclick="document.pressed=this.value"></li>
</ul>
</form>
</td>
<?php }}} ?>
이렇게 했더니 제일 상단에 값은 체크했을 때 넘어가는데
밑에 부터는 체크하라고 뜨네요 조언 좀 부탁드려도 될까요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
적용해 보니 "변경실패"라는 메세지가 뜨면서 변경이 되지 않습니다. ;;