2017-02-14 5 views
0

У меня есть проект, в котором у меня есть этот вызов ajax. он работает правильно.Размещение различного содержимого в разных divs в одном вызове ajax

$.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> 

В приведенном выше примере, Java-код выполняется, то есть предупреждение появляется и таблицы преобразуются в DataTables. Но оба набора данных помещаются в один div divBccMovementNR.

Однако я хотел был бы возвратить оба datatables в двух разных div, используя только один вызов ajax, по этой причине мне пришлось указать каждый 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' 
); 

Однако, используя код, приведенный выше, предупреждение не делаешь появляются и таблицы отображаются, но не преобразованный в datatable.

Другие детали, я использую много вызовов jQuery ajax «post», однако в примерах, которые я нашел, люди используют вызов «получить». Я бы хотел использовать «пост». Но в любом случае. У меня нет проблем с помощью вызовов «получить».

У вас есть идея? Спасибо

+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

Извините. Я не понял, что вы подразумеваете под «копией HTML в tmpValue» – Lev

+0

Я имею в виду хранение html accNoRealMovs1.jsp в tmpValue. – 3bu1

Смежные вопросы