개발/js·jquery

php + ajax return false 처리하기

반응형

 

php로 폼 내용을 전송하는 경우, 폼 스크립트 안에 ajax를 넣어 값을 체크한 뒤에 문제가 없는 경우 전송하는 스크립트를 짜는데, ajax success 안에 바로 return false를 쓰니 제대로 실행되지 않고 그냥 submit이 되어버렸다.

 

해결 방법은 ajax 구문안에 return false를 직접적으로 쓰기보다는 스크립트 상단 부분에 rtn=false;를 정의한뒤

ajax 구문안에서 실패한 경우 rtn = false; 성공한 경우  rtn = true 값을 넣어주고 스크립트 맨 마지막에 return rtn을 호출하면 된다. 이때 ajax 구문안에 async: false를 꼭 넣어줘야한다.

 

function checkform() {   

var rtn = false;   // 변수선언

$.ajax({          
        type: "POST",            
        url: "xxx.php",              
        async: false, // 꼭 넣어줘야함
        success: function(result) {
            if (result) {
                rtn = true; //성공한 경우
            } else {
                rtn = false; //실패한 경우 (return false)
            }
        },
        error: function() {
            rtn = false; //실패한 경우 (return false)
        }

    });

    return rtn; //변수처리

}

 

 

[예시 적용 코드]

function checkform(f) {   

var id = $("#id").val();
var name = $("#name").val();

var rtn = false; 

$.ajax({          
        type: "POST",            
        url: "xxx.php",              
        data: {
            id : id,
            name : name
        },
        async: false, 
        success: function(result) {
            if (result) {
                alert(name +"은(는) 이미 등록된 이름입니다.");
                rtn = false;  
            } else {
                rtn = true; 
            }
        },
        error: function() {
            rtn = false; 
        }

    });

    return rtn;

}

 

 

 

[함께보면 좋은 글]

 

 

[php] ajax를 활용하여 좋아요 버튼 만들기

각 상품별 상품 사용 리뷰마다 좋아요 버튼을 추가하는 작업을 하였다. 좋아요 버튼 클릭시 페이지 이동을 하지 않고 그 자리에서 바로 좋아요 숫자가 변경되고, 채워진 하트로 바뀌고, 다시 클

hongpage.kr

 

ajax 순서대로 여러번 사용하기 (Promise, then)

ajax란? AJAX란 비동기 자바스크립트와 XML (Asynchronous JavaScript And XML)을 말한다. 간단히 말하면, 서버와 통신하기 위해 XMLHttpRequest 객체를 사용하는 것을 말한다. JSON, XML, HTML 그리고 일..

hongpage.kr

 

반응형