2017-02-14 8 views
0

私はこのajaxコールを持っているプロジェクトを持っています。それは正しく動作します。1つのajaxコールで異なるdivに異なるコンテンツを配置する

$.get(
    'accNoRealMovs1.jsp', 
    {mode:"0"},   
    function(responseText){ 
     $('#divAccMovementNR').html(responseText); 
    },'html' 
); 



<div id="divAccMovementNR"></div> 
<div id="divAccMovementNR2"></div> 

マイaccNoRealMovs1.jspは、上記の例で

<% jsp scriplet getting "mode" parameter and other instructions%> 
.. 
<script> 
$(document).ready(function() { 
alert('hello'); 
var t1 = $('#table1').DataTable(); //Convert table1 into Datatable Jquery (plugin) 
var t2 = $('#table2').DataTable(); //Convert table2 into Datatable Jquery (plugin) 
}) 
</script> 
<div id="divAccMovementNR"><table id="table1">...</table></div> 
<div id="divAccMovementNR2"><table id="table2">...</table></div> 

で、JavaScriptコードが実行され、すなわち、警告が表示され、テーブルがのDataTableに変換されます。しかし、両方のデータ型は同じdiv "divAccMovementNR"に置かれます。

しかし、私は2つの異なるdivで両方のデータセットを返すことを望んでいます。この理由から、各divコンテンツを指定する必要がありました。 私はこれらのスレッドは、次のとおりです。

jQuery .load()/.ajax() not executing javascript in returned HTML after appended

How to include multiple rendered JSP into response to AJAX?

をそして、それは私のコードです:

$.get(
    'accNoRealMovs1.jsp', 
    {mode:"0"},   
    function(responseText){ 

    // I try with only one div, but it doesnt work. 
    $responseText = $(responseText);      
    $('#divAccMovementNR').html($('#divAccMovementNR' , $responseText).html()); 
    $responseText.find('script').appendTo('#divAccMovementNR'); 

    //$('#divAccMovementNR2').html($('#divAccMovementNR2' , $responseText).html()); 
    //$responseText.find('script').appendTo('#divAccMovementNR2'); 

    },'html' 
); 

しかし、上記のコードを使用して、アラートが表示されないdoestとテーブルが表示されますが、ありますデータテーブルでは変換されません。

その他の詳細、私は多くのjquery ajax "post"呼び出しを使用していますが、私が見つけた例では "get"呼び出しを使用しています。私は "投稿"を使い続けたいと思います。しかし、どのように..私は "get"呼び出しを使用することによって何の問題もありません。

ご存知ですか?ありがとう

+0

$( '#divAccMovementNR').html($( '#divAccMovementNR'、$ responseText).html());私は問題がこの声明にあると思う。 $( '#divAccMovementNR').html($ responseText).html());を使用してみてください。 $ responseText = responseTextを試してください。 $ responseText = $(responseText)の代わりに。 – 3bu1

+0

JavaScriptコードを実行しますが、両方のコンテンツが同じdiv "divAccMovementNR"に読み込まれます。私は関数内の各divを指定しなければならないと思う。 – Lev

+0

あなたはaccNoRealMovs1.jsp#divAccMovementNRを

に配置しますか? – 3bu1

答えて

0

それを行う方法はたくさんあります。私は出力をチェックしていませんが、ロジックが動作するはずです。エラーがあれば出力を教えてください。

$.get(
     'accNoRealMovs1.jsp', 
     {mode:"0"},   
     function(responseText){ 

     // copy html in to tmpValue and then segregate to respective divs. 
      $("body").append("<div id='tempValue'>"+responseText+"</div>").done(function(){ 

//1st div 
$("#divAccMovementNRNew").html($("#tempValue").find("#divAccMovementNR").html()); 
$("#tempValue #divAccMovementNR").remove(); 

// 2nd div 
$("#divAccMovementNR2New").html($("#tempValue").find("#divAccMovementNR2").html()); 
$("#tempValue #divAccMovementNR2").remove(); 



}); 

}); 

<div id="divAccMovementNRNew"></div> 
<div id="divAccMovementNR2New"></div> 
+0

申し訳ありません。私はあなたが "tmpValueにHTMLをコピーする"という意味を理解していませんでした。 – Lev

+0

私はaccNoRealMovs1.jspのhtmlをtmpValueに格納することを意味します。 – 3bu1

関連する問題