버튼 클릭시 동작하는 ajax를 특정 조건에 따라 작동 안되게 하는 법
본문
버튼 클릭시 특정조건에 따라 ajax의 동작을 제한하려고 합니다
예를들어, 현재날짜가 db에 있는 마감기한보다 지났을 때 alert로 문구를 띄우며 동작이 안되게 끔 하고싶습니다
조건에 해당하지 않으면 평소 ajax 호출하던데로 하구요
조건문과 alert문을 본 페이지의 스크립트 태그에서 alert를 삽입해야되나요?? 아니면 ajax php페이지??
(조건은 php로 작성되어야합니다)
<script>
$(function() {
$(document).on("click", "button.btn1" , function() {
$.ajax({
url : "http://test.php",
type : "post",
data : {
},
success : function(res) {
if(res) {
}
}
});
});
});
</script>
!-->
답변 2
질문은 항상 실제적인 상황으로 해야 답변을 쉽게 할수가 있는데 이런 형태의 질문은
방법만 두루뭉술 알려줄 수 있을 뿐입니다
위 소스가 나오는 곳이 어딘지 모르겠으나 test.php 까지 가서 체크할 필요가 있나요?
위 코드가 나오는 페이지가 view페이지라면 테이블 내용을 쿼리하는 부분이 이미 있을텐데 그것을 이용하면 될 것이고
없다면 상단에서 테이블에서 마감일자를 쿼리하는 코드를 넣어서 마감일이 지났는지 아닌지 판단하는
변수를 하나 만드세요
if(마감일 지나지않았으면) $exec=1; else $exec='';
그리고는 자바스크립트 부분에 넣으면 됩니다
$.ajax 위쪽에다 넣으세요
<?php if(!$exec){?>
alert('마감일 경과'); return;
<?php }?>
ajax url php 페이지에서
마감시간 체크를 통해 유효하면 DB 처리하고 res.result = success, res.message = 성공했
마감시간이 지나서 무효처리하면 DB처리하지 않고 res.result = failure, res.message = 왜 처리하지 못했나에 대한 메시지
를 리턴받아
if (res.result === 'failure')
alert(res.message)
else
alert('성공');
다른게 아니고 마감시간이니까
서버사이드에서 처리해야할 것 같습니다