2016-08-16 4 views
1

jQuery $.getsuccessremoveClassaddClass을 시도하고 있습니다. 하지만 그것은 $.get와 함께 작동하지 않는 것 같아요 그리고 내가 할 싶지 않아 전체 $.ajax을 포함하는 경우에만 작동합니다.이 AJAX jQuery의 오류는 무엇입니까?

다음 코드는 작동 :

$(".result").on("click", ".myul li", function(){ 
    var mydiv = $(this).data("id"); 
    var enumgroup = {}; 
    enumgroup["id"]=mydiv; 

     $.ajax({ 
     type: 'POST', 
     url: 'checkenumresult.php', 
     context:this, 
     data: {id: mydiv}, 
     success: function (data) { 
       $(this).removeClass("forseen0").addClass("forseen1"); 
     } 
     }); 
}); 

다음 코드 나던 작업 :

$(".result").on("click", ".myul li", function(){ 
    var mydiv = $(this).data("id"); 
    var enumgroup = {}; 
    enumgroup["id"]=mydiv; 

    $.get("checkenumresult.php", enumgroup, function(){ 
    context:this, //tried without this too. 
    success: function(data){ 
     $(this).removeClass("forseen0").addClass("forseen1"); 
    } 
    }); 
}); 

모두 코드는 PHP 페이지에 데이터를 게시에 대해 노력하고 있습니다. 두 번째 코드에서만 요소의 클래스가 변경되지 않습니다 success. 두 번째 코드의 문제점은 무엇입니까?

+1

요청에 다른 데이터를 전달 중입니다. 이 오류로 인해 서버에서 발생하는 특정 오류를 콘솔에서 확인하십시오. 또한 첫 번째 요청에서'POST '를 만들었으므로 두 번째 예제에서'$. post()'가 더 적절할 것입니다. –

+2

첫 번째 코드에서 게시물의 데이터를 보내고 게시물에서 데이터를 보내려는 경우'$ .get '대신'$. post'를 사용하십시오. –

+1

$ .get 설명 : HTTP GET 요청을 사용하여 서버에서 데이터를로드하십시오. 아약스 요청에서 게시물을 사용하고 있습니다 – Quince

답변

1
$(".result").on("click", ".myul li", function(){ 
    var mydiv = $(this).data("id"); 
    var enumgroup = {}; 
    enumgroup["id"]=mydiv;  
    $.get("checkenumresult.php", enumgroup, function(data){ 
     $(mydiv).removeClass("forseen0").addClass("forseen1");   
    }); 
}); 

위의 get 호출에서 세 번째 인수는 응답에 대한 콜백입니다

+0

감사합니다. 그래서'function (data)'는 콜백이므로'enumgroup'이 PHP 페이지로 보내질 때만 클래스가 적용될 것입니다, 맞습니까? – Somename

1
당신은 같은 $.post()를 사용하여 적절한 형식으로 서버에 데이터를 게시 할 수 있습니다

:

$(".result").on("click", ".myul li", function() { 
    vat $this = $(this); 
    var mydiv = $this.data("id"); 
    var enumgroup = {}; 
    enumgroup["id"] = mydiv; 

    $.post("checkenumresult.php", {id: mydiv}, function(data) { 
    $this.removeClass("forseen0").addClass("forseen1"); 
    }); 
}); 
1

이 두 지점이 있습니다 참고 :
1 - $.ajax 전화에서 POST 요청을 보내고 다른 쪽에서는 GET 요청을하려고합니다. 그가 POSTGET을 모두 수락하면 끝점을 확인해야합니다. https://api.jquery.com/jquery.post/

: 엔드 포인트 만 POST을 수락하면

$.get("checkenumresult.php", enumgroup, function(data) { 
    $(this).removeClass("forseen0").addClass("forseen1"); 
}); 

, 단지 $.get$.post에 변경 : -

2는 요청이 무언가 같이해야합니다 귀하의 $.get 요청의 성공 콜백은 third argument입니다

FYK : https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html