안녕하세요. 어제 AJAX 후 스크롤 고정 관련되어서 질문을 올렸는데요!
(https://sir.kr/qa/470670?&vpage=1#answer_470717)
추가적인 질문이 있어서 질문 드립니다!
Copy
<script>
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 + "~!";
}
</script>
위의 코드를 header 내에 입력해주니까, 새로고침해도 스크롤이 잘 고정되는 것을 확인했습니다.
다만, AJAX로 넘어간 페이지에서 필요한 기능을 끝낸 후 다시 돌아왔을 때, alert창이 뜨지 않고 페이지가 새로고침 되는 것을 확인했습니다.
Copy
<div id="insert_data_Modal" style="z-index:1050;" class="modal fade" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title" id = "insert_title">품명 수정</h4>
</div>
<div class="modal-body">
<form method="post" id="insert_form">
// 관련 코드
</form>
</div>
<div class="modal-footer">
<button type="button" class="close_btn btn btn-default" data-dismiss="modal">닫기</button>
</div>
</div>
</div>
</div>
<script>
$(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 후 새로고침 시 스크롤 적용이 안됨
}
})
});
</script>
// index_main_update.php
Copy
// DB 연결 후 수정하는 쿼리 존재
//
//
// 쿼리 적용 후
if (sqlsrv_query($connect, $insert_H_query)) {
$output .= '<script>alert(`해당 품명이 수정되었습니다.`);</script>';
$output .= '<script>location.href=`index_main.php`</script>';
}
혹시 AJAX alert 창 후 reload 하는 방법이 있을까요?
답변 2개
답변을 작성하려면 로그인이 필요합니다.