2012-01-11 2 views
3

나는이 jQuery 코드가 있습니다JQuery와 아약스 응답 데이터 체크 박스 ID의

jQuery("#form").click(function() { 

$("input[name='copyno']:checked").each(function() { 

    checkboxData = "copyno="+$(this).val(); 

id=$(this).val(); 

    jQuery.ajax({ 
     url: "renewall.php", 
     type: "POST", 
     data: checkboxData, 
     cache: false, 
     dataType: "text", 
     success: function(data) { 

    $("#" +id).html(data);    

    } 
}); 
}); 
}); 

가 무엇 I'am 특정 된 div로 응답 데이터를 넣어하는 것입니다 노력에 기반을 확인란의 값 (이 경우 id)을 반환하지만 응답 데이터는 동일한 id 값이있는 곳에 표시되는 대신 동일한 div id ( id = $ (this) .val();)에만 표시됩니다.

답변

2

복사합니다 중요한 부분은 제대로내 id 변수를 선언하는 것입니다 어쨌든

$("input[name='copyno']:checked").each(function() { 
    checkboxData = "copyno="+$(this).val(); 
    ids = $(this).val(); 

    jQuery.ajax({ 

     url: "renewall.php", 
     type: "POST", 
     data: checkboxData, 
     cache: false, 
     dataType: "text", 
     success: function(data) { 

      var divs = $(data).filter(function() { 
             return $(this).is('#stil2'); //<-- add semicolon 
      }); 

      divs.each(function() { 
      $("#" + ids).html(this); 
      }); 
     } 
    }); 
}); 

: 스크린 캐스트에서 저를 보여 주었다 같은기능 :

$("input[name='copyno']:checked").each(function() { 
    checkboxData = "copyno="+$(this).val(); 
    var ids = $(this).val(); 

    //rest of your code... 

}); 

그래서 메모를 할 것을 바로 div의 전에 VAR 인스. 이렇게하면 문제가 해결됩니다. 이 작업을 수행하지 않으면 변수는 첫 번째 호출에 대해 설정되지만 두 번째 호출에 의해 겹쳐 쓰여집니다. 그래서 결국 양쪽 호출이 끝나면 두 번째 div 인 ids 값을 갖게됩니다.

+0

글쎄 도움이되었습니다. 업데이트 된 답변을 확인하십시오. – Jules

+0

Thx 남자, 당신은 저를 많이 구해주었습니다. 나는 그것을 시도했지만 그것이 다른 성공 코드와 함께있는 것 같았습니다 ... – user1143217

+0

나는 copyno의 긴 목록을 가지고있을 때 블록이 나타나기 전에 너무 느려집니다. DOM 조작 html(), suguestions 일 수 있습니까? – user1143217

0

솜 종류 OG 반복 문제가 id 스크립트의 시작 전역 변수를 확인하십시오, 당신은 아약스 기능에서 사용할 수있을 것입니다 : 코드의

var id=null; 

/*... your code... */