2014-02-07 2 views
3

누구든지이 코드에 어떤 문제가 있는지 알려주실 수 있습니까?Jquery ajax request

이 함수는 mysql 테이블의 특정 데이터를 제거하는 데 도움이됩니다. 데이터가 성공적으로 제거되었지만 jquery ajax 함수의 응답이 예상 한 것과 다릅니다.

function removeMember(id,url){ 
var data = "action=removeMember&id="+id; 
var action = ajaxReturnData('POST',data,url); 
if(action == '1'){ 
    $(".msg").html("done"); 
    $("#span_delete_"+id).parent().parent().empty().hide("slow"); 
}else if(action.response == '0'){ 
    $(".msg").html("failed"); 
} 

}

/*User defined functions */ 
function ajaxReturnData(method,data,url){ 
$.ajax({ 
    url: url, 
    data: data, 
    type: method,   
    success: function(data) { 
     return data; 
    }, 
    error : function(jqXHR, exception){ 
     return '0'; 
    } 
}); 
} 
+0

또 다른 [AJAX 호출에서 응답을 반환하는 방법?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – Quentin

답변

1

AJAX 비동기이다. success 콜백 리턴 데이터는 호출 할 jQuery의 $.ajax이고 반환 값을 수신하지 않기 때문에 데이터를 반환 할 수 없습니다. 요청이 으로 보내 자마자 AjaxReturnData가 종료되고 응답을받지 못합니다.

당신은 콜백 (실제로, 당신은 당신의 논리를 다시 생각해야합니다. "AjaxReturnData는"당신이 아약스 호출은 데이터를 반환하지 않는다는 것을 알고 지금 가지고 이상한 방법이 될 것이다)

function removeMember(id,url){ 
    var data = "action=removeMember&id="+id; 
    var action = ajaxReturnData('POST',data,url,function() { 
    $(".msg").html("done"); 
    $("#span_delete_"+id).parent().parent().empty().hide("slow");  
    }, function() { 
    $(".msg").html("failed"); 
    }); 
} 

function ajaxReturnData(method,data,url,onSuccess,onError){ 
$.ajax({ 
    url: url, 
    data: data, 
    type: method,   
    success: onSuccess, 
    error : onError 
}); 
} 
을 함께 전달해야합니다
+0

감사합니다 너의 제안 친구를 위해 – manipvd