2012-03-12 14 views
0

すべての要素のリストを取得するためにajax呼び出しを行い、商品を選択し、チェックボックスを使ってテーブルに値を入力します。次に、別のAjaxコールを作成して、選択済みの製品を選択して選択します。これは、ieを除くすべてのブラウザで機能します。私は何か間違っているのですか?別のajaxが成功した場合の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

クライアント側で値を保存してからループすることはできませんか?帯域幅を節約し、確実に処理速度を向上させます –

答えて

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:最初のajaxで これも機能しています。 –

0

事に見てください。 obj[0].checked = trueが実際に動作することを確認してください。

関連する問題