AJAX alert창 후 reload
안녕하세요. 어제 AJAX 후 스크롤 고정 관련되어서 질문을 올렸는데요!
(https://sir.kr/qa/470670?&vpage=1#answer_470717)
추가적인 질문이 있어서 질문 드립니다!
window.onload = function(){
var strCook = document.cookie;
//alert(strCook);
if(strCook.indexOf("!~")!=0) {
var intS = strCook.indexOf("!~");
var intE = strCook.indexOf("~!");
var strPos = strCook.substring(intS+2,intE);
document.getElementById("product_table").scrollTop = strPos;
}
}
function SetDivPosition(){
var intY = document.getElementById("product_table").scrollTop;
document.title = intY;
document.cookie = "yPos=!~" + intY + "~!";
}
위의 코드를 header 내에 입력해주니까, 새로고침해도 스크롤이 잘 고정되는 것을 확인했습니다.
다만, AJAX로 넘어간 페이지에서 필요한 기능을 끝낸 후 다시 돌아왔을 때, alert창이 뜨지 않고 페이지가 새로고침 되는 것을 확인했습니다.
×
품명 수정
// 관련 코드
닫기
$(document).ready(function(){
// '수정' 모달 창에서 '수정' 버튼 눌렀을 때
$('#insert_form').on('submit', function(event) {
event.preventDefault();
$.ajax({
url:"index_main_update.php",
method:"POST",
data:$('#insert_form').serialize(),
success:function(data) {
$('#insert_form')[0].reset();
$('#insert_data_Modal').modal('hide');
window.location.reload(); // -> reload로 작성해주면 스크롤 적용은 되지만, alert창이 뜨지 않음
//$('#product_table').html(data); // product_table 은 DB의 데이터가 들어있는 table
// --> 이 코드를 작성하면 ajax 후 새로고침 시 스크롤 적용이 안됨
}
})
});
// index_main_update.php
// DB 연결 후 수정하는 쿼리 존재
//
//
// 쿼리 적용 후
if (sqlsrv_query($connect, $insert_H_query)) {
$output .= 'alert(`해당 품명이 수정되었습니다.`);';
$output .= 'location.href=`index_main.php`';
}
혹시 AJAX alert 창 후 reload 하는 방법이 있을까요?
답변 2개
리로드 하는 바로 위에서 알럿창 띄우면 될거 같은데요.
alert("TEST");
window.location.reload();
위처럼 적용하면 기본적으로 alert 실행이 되고나서 리로드가 됩니다.
그러니 DB처리 후 리턴해주는 데이터를 리로드 처리하기 전에 실행 해주면 될거에요
다만 현재 리턴 데이터를 기준으로는 조금 수정이 필요할듯 보입니다.
댓글을 작성하려면 로그인이 필요합니다.
비동기 결과값이 도착 하기전에 아래 리로드 함수가 먼저 실행되는 경우가 있어서 결과값을 제이슨형태로 리턴하고 해당결과값에 따라 success함수에서 처리하는 형식이 더 낫다고 어제 말씀 드린거에용
저런 경우까지 생각하면 promise 나 async / await 를 이용해 함수실행 우선순위를 정해줘야할거에요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인