잘되는데 너무 잘돼서 문젭니다.ㅠㅠ 채택완료
30000
5년 전
조회 2,179
ajax로 저장하는데요.
클릭하면 모달로 띄워지는 페이지에 ajax코드 넣었습니다.
저장하기 누르면
url: "/modal/ajax.update.php", 이렇게 해서 잘 저장됩니다.
그런데 내용을 보려고 띄우기만 하고 모달 닫고, 2번째는 모달 띄웠다가 저장하기 누르면
같은 내용이 2번 저장됩니다.
4번 띄웠다가 5번째 저장하면 같은내용이 5번 저장되구요
999번 띄웠다가 닫고 1000번째에 저장하기 누르면 1000번 저장됩니다.
실제로 1000번 해본거는 아니니 이해바라구요
왜 이러는 걸까요? 뭐 해결책이 없을까요?
늘 뭐가 안돼서 삽질인데...이젠 하다하다 너무 잘 돼서 걱정이네요..
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
5년 전
이벤트를 여러번 바인드해서 그런거 같은데요.
버튼 클릭 할때마다 ajax 보내는 이벤트 바인딩을 하는지 확인하시고 그렇다면
바인딩을 해제하고 다시 바인드하는 방법으로 하시면 될 듯 하네요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
3
30000
5년 전
감사합니다. 맞는거 같습니다. 모달띄울때 불러오고 또 저장하고 그러다 보니 그렇거 같습니다. 간단하지 않은거 같아 다시 정리해서 올려봐야겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 7개
3
30000
5년 전
빨른답변 감사합니다,!
$.ajax({
url: "<?php echo $board_skin_url?>/modal/ajax.update.php",
type: "POST",
data: {
"wr_id": wr_id,
"bo_table": bo_table,
"mb_id": mb_id,
"wr_name": wr_name,
"wr_subject": wr_subject
},
dataType: "text",
async: false,
cache: false,
success: function(data, textStatus) {
sql = data.sql;
}
});
$('.modal_close').trigger('click') ;
vex.dialog.alert({
message: '*저장되었습니다.',
className: 'vex-theme-os'
})
});
이렇게 되어 있습니다.
<script>
$(document).on('click', '.modal-state', function(){
location.reload();
});
</script>
이렇게 넣어서 그냥 닫기하면 리프레쉬되서 저장은 안되는데...화면 전환이 있어 좋은방법은 아닌거 같습니다.
$.ajax({
url: "<?php echo $board_skin_url?>/modal/ajax.update.php",
type: "POST",
data: {
"wr_id": wr_id,
"bo_table": bo_table,
"mb_id": mb_id,
"wr_name": wr_name,
"wr_subject": wr_subject
},
dataType: "text",
async: false,
cache: false,
success: function(data, textStatus) {
sql = data.sql;
}
});
$('.modal_close').trigger('click') ;
vex.dialog.alert({
message: '*저장되었습니다.',
className: 'vex-theme-os'
})
});
이렇게 되어 있습니다.
<script>
$(document).on('click', '.modal-state', function(){
location.reload();
});
</script>
이렇게 넣어서 그냥 닫기하면 리프레쉬되서 저장은 안되는데...화면 전환이 있어 좋은방법은 아닌거 같습니다.
e
eyekiss
5년 전
올리신 소스는 문제 없어보이고..
저장하기 클릭 시 호출하는 부분의 문제인 것 같네요..
저장하기 클릭 시 호출하는 부분의 문제인 것 같네요..
3
30000
5년 전
// 기존 wr_id 있으면
if(wr_id) {
if ($s_idx == $s_idx) { //s_idx가 같으면 인서트
$sql = "INSERT INTO g5_re_saving( mb_id, wr_name, wr_subject, wr_id, wr_datetime ) VALUES(
'".$mb_id."',
'".$wr_name."',
'".$wr_subject."',
'".$wr_id."',
'".G5_TIME_YMDHIS."'
)";
} else { //다르면 업데이트
$sql = "update g5_re_saving set mb_id='$mb_id', wr_name='$wr_name', wr_subject='$wr_subject', s_idx='$s_idx', wr_datetime='".G5_TIME_YMDHIS."' where wr_id = '$write[wr_id]' ";
}
} else {
//기존 wr_id가 없으면 인서트
$sql = "INSERT INTO g5_re_saving( mb_id, wr_name, wr_subject, wr_id, s_idx, wr_datetime ) VALUES(
'".$mb_id."',
'".$wr_name."',
'".$wr_subject."',
'".$wr_id."',
'".$s_idx."',
'".G5_TIME_YMDHIS."'
)";
}
// 실행하기
sql_query($sql);
이렇게 했는데 문제가 있을까요?
if(wr_id) {
if ($s_idx == $s_idx) { //s_idx가 같으면 인서트
$sql = "INSERT INTO g5_re_saving( mb_id, wr_name, wr_subject, wr_id, wr_datetime ) VALUES(
'".$mb_id."',
'".$wr_name."',
'".$wr_subject."',
'".$wr_id."',
'".G5_TIME_YMDHIS."'
)";
} else { //다르면 업데이트
$sql = "update g5_re_saving set mb_id='$mb_id', wr_name='$wr_name', wr_subject='$wr_subject', s_idx='$s_idx', wr_datetime='".G5_TIME_YMDHIS."' where wr_id = '$write[wr_id]' ";
}
} else {
//기존 wr_id가 없으면 인서트
$sql = "INSERT INTO g5_re_saving( mb_id, wr_name, wr_subject, wr_id, s_idx, wr_datetime ) VALUES(
'".$mb_id."',
'".$wr_name."',
'".$wr_subject."',
'".$wr_id."',
'".$s_idx."',
'".G5_TIME_YMDHIS."'
)";
}
// 실행하기
sql_query($sql);
이렇게 했는데 문제가 있을까요?
e
eyekiss
5년 전
저장하기 버튼을 클릭했을때 호출하는 부분을 확인해보시구요..
저장하는 파일에서는 $s_idx 가 어떤 값인지 모르겠네요..
저장하는 파일에서는 $s_idx 가 어떤 값인지 모르겠네요..
3
30000
5년 전
<span id="button_<?php echo $write[wr_id]; ?>" class="btn2" data-bo_table="<?php echo $bo_table?>" data-wr_id="<?php echo $write[wr_id]; ?>" >저장하기</span>
이렇구요,,
실행은 <script>
$(document).on('click', '#button_<?php echo $write[wr_id]; ?>', function(){
ajax코드
}
이런데요,,,왜 열엇다 닫은 데이터가 남아서 중복으로 저장되는지 모르겠습니다.
이렇구요,,
실행은 <script>
$(document).on('click', '#button_<?php echo $write[wr_id]; ?>', function(){
ajax코드
}
이런데요,,,왜 열엇다 닫은 데이터가 남아서 중복으로 저장되는지 모르겠습니다.
e
eyekiss
5년 전
data: {
"wr_id": wr_id,
"bo_table": bo_table,
"mb_id": mb_id,
"wr_name": wr_name,
"wr_subject": wr_subject
},
여기 변수값들이 선언되는 부분이 없네요??
"wr_id": wr_id,
"bo_table": bo_table,
"mb_id": mb_id,
"wr_name": wr_name,
"wr_subject": wr_subject
},
여기 변수값들이 선언되는 부분이 없네요??
3
30000
5년 전
리스트에서 모달띄워 ajax로 저장하는것입니다.
$(document).on('click', '#button_<?php echo $write[wr_id]; ?>', function(){
var wr_id = $(this).data("wr_id");
var bo_table = $(this).data("bo_table");
var mb_id = $('#mb_id_<?php echo $write['wr_id'] ?>').val();
var wr_name = $('#wr_name_<?php echo $write['wr_id'] ?>').val();
var wr_subject = $('#wr_subject_<?php echo $write['wr_id'] ?>').val();
이렇게 되어 잇습니다.
$(document).on('click', '#button_<?php echo $write[wr_id]; ?>', function(){
var wr_id = $(this).data("wr_id");
var bo_table = $(this).data("bo_table");
var mb_id = $('#mb_id_<?php echo $write['wr_id'] ?>').val();
var wr_name = $('#wr_name_<?php echo $write['wr_id'] ?>').val();
var wr_subject = $('#wr_subject_<?php echo $write['wr_id'] ?>').val();
이렇게 되어 잇습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인