2012-03-12 1 views
0

모든 요소의 목록을 가져 오려면 제품을 말하고 확인란이있는 테이블에 값을 채우려면 아약스를 호출합니다. 그런 다음 다른 아약스 전화를 통해 이미 선택된 제품을 선택하여 선택합니다. 이것은 ie를 제외한 모든 브라우저에서 작동합니다. 내가 뭔가 잘못하고 있는거야?다른 아약스의 성공에 대한 Ajax는 작동하지 않습니다. 예 :

$.ajax({ 
       url : "${product_category_url}", 
       data : {"orgID":"${globalOrganisation.id}"}, 
       dataType : "html", 
       statusCode: { 
        401: function() { 
         $('.ui-tabs-panel:visible').html("${ajax_session_expired}"); 
        } 
       }, 
       success : function(data) { 
        $("#productCategoryContainer").html(data); 
        $.ajax({ 
         url: "${get_taggedProd_url}", 
         data: {"questionnaireId":_questionnaireId}, 
         dataType: "json", 
         success: function(data){ 
          var productIds = data.products; 
          $.each(productIds,function(index,value){ 
          var obj = $('input[name="'+value+'"]'); 
          obj[0].checked = true 
          selectRow(obj[0]); 
          }); 
         } 
        }); 
       } 
      }); 
+0

그래서 어떻게됩니까? 어떤 오류? – linuxeasy

+0

콘솔을 점검하고, 구문을 점검하고, 서버가 아무것도 반환하지 않는지 확인하십시오. 올바른 URL이 있는지 확인하십시오 (예 : 경로에 문제가있는 경우, 특히 프레임 워크가 라우팅을 사용하는 경우) – Joseph

+0

상자를 다시 점검하기 위해 다음 ajax 호출을 작성하는 대신 , 당신은 클라이언트 측에 값을 저장하고 그 후에 루프를 돌릴 수 없습니까? 대역폭을 절약하고 프로세스 속도를 향상시킵니다. –

답변

1

이것은 IE에 의한 캐싱 때문입니다.

$.ajax({ 
       url : "${product_category_url}", 
       data : {"orgID":"${globalOrganisation.id}"}, 
       dataType : "html", 
       statusCode: { 
        401: function() { 
         $('.ui-tabs-panel:visible').html("${ajax_session_expired}"); 
        } 
       }, 
       success : function(data) { 
        $("#productCategoryContainer").html(data); 
        $.ajaxSetup ({ 
    // Disable caching of AJAX responses 
    cache: false 
}); 

        $.ajax({ 
         url: "${get_taggedProd_url}", 
         data: {"questionnaireId":_questionnaireId}, 
         dataType: "json", 
         success: function(data){ 
          var productIds = data.products; 
          $.each(productIds,function(index,value){ 
          var obj = $('input[name="'+value+'"]'); 
          obj[0].checked = true 
          selectRow(obj[0]); 
          }); 
         } 
        }); 
       } 
      }); 

을 시도하십시오 당신이 세부 사항을 더 필요로하는 경우 항상 나사 나를 선택한 확인란을 얻기 위해 노력하고이 코드에 this

+0

$ .ajaxSetup ({ // AJAX 응답 캐싱 사용 안 함 캐시 : false })을 추가했습니다. 첫 번째 성공 후 을 추가하거나 $ .ajax ({ url : url, data : inputs + '& time ='+ 새 날짜(), )}을 추가 할 수 있습니다. 첫 번째 아약스에서이 또한 작동합니다. –

0

건을 조사하십시오. obj[0].checked = true이 실제로 작동하는지 확인하십시오.

관련 문제