2016-10-21 6 views
1

у меня есть моя страница в комплекте с DataTables, который в этой картине enter image description hereDataTables не работает при загрузке определенной страницы, хотя идентификатор

У меня есть проблема, как только я активировать или деактивировать мои сотрудники поиска в DataTables и сортировки будет исчез. Я думаю, моя ошибка в части загрузки. Каков правильный способ загрузки определенной страницы с идентификатором div?

это выход, когда активировать или деактивировать мой персонал здесь enter image description here

сог, что я сделал в моих base_url + «adminpage/userpage» это одна страница для пользователя и персонала. я просто сделал это, когда я нажимаю на просмотр персонала, он скроет пользователя и покажет персональную страницу, которая в той же ссылке.

который мой код есть здесь

$(document).ready(function(){ 
$("#user-page").show(); 
$("#viewstaff").on("click",function(){ 
$("#user-page").hide(); 
$('#staff-page').show(); 
}); 
$("#viewuser").on("click",function(){ 
$("#staff-page").hide(); 
$("#user-page").show(); 
});}) 

мой код в Activate здесь

function activate_staff(id){ 

     swal({ 
    title: 'Are you sure?', 
    text: "You want to activate this user?", 
    type: 'info', 
    showCancelButton: true, 
    confirmButtonColor: '#3085d6', 
    cancelButtonColor: '#d33', 
    confirmButtonText: 'Yes, Deactivate it!' 
}).then(function() { 
    $.ajax({ 
     url : base_url+"adminpage/staff_deactivate/"+id, 
     type: "POST", 
     success: function(data){ 
      $('#dataTables-example1').DataTable(); 

      var result = JSON.parse(data); 

      if(result===1){ 

       swal({ 
       title: 'Deactivate Success', 
       // text: "will remove within 1 sec", 
       type: 'success', 
       timer: 1500, 
       showConfirmButton: false 
       }).done() 
       window.setTimeout(function(){ 
       $("#wrapper-staff").load(base_url+"adminpage/useraccount #wrapper-staff > *"); 

       } ,1500) 
      } 
     }, 
     error: function (jqXHR, textStatus, errorThrown){ 
      swal("Oops...", "Something went wrong :(", "error"); 
     } 
    }); 
})} 

и деактивирование здесь

function deactivate_staff(id){ 
    swal({ 
    title: 'Are you sure?', 
    text: "You want to deactivate this user?", 
    type: 'info', 
    showCancelButton: true, 
    confirmButtonColor: '#3085d6', 
    cancelButtonColor: '#d33', 
    confirmButtonText: 'Yes, Activate it!' 
}).then(function() { 

    $.ajax({ 
     url : base_url+"adminpage/staff_activate/"+id, 
     data: $(this).serialize(), 
     type: "POST", 


     success: function(data){ 

      var result = JSON.parse(data); 

      if(result===1){ 

       swal({ 
       title: 'Activated Success', 
       // text: "will remove within 1 sec", 
       type: 'success', 
       timer: 1500, 
       showConfirmButton: false 
       }).done() 
       window.setTimeout(function(){ 


        $("#wrapper-staff").load(base_url+"adminpage/useraccount #wrapper-staff > *"); 

       } ,1500) 


      } 
     }, 
     error: function (jqXHR, textStatus, errorThrown){ 
      swal("Oops...", "Something went wrong :(", "error"); 
     } 
    }); 
}) } 
+0

Зачем загружать другую страницу? Почему вы не обновляете таблицу? – John

+0

@John im просто исследует или скажет попытку, если есть способ, что на 1 странице я объединю пользователя и персонал. например, когда я нажимаю просмотр персонала, он покажет идентификатор персонала и скроет идентификатор пользователей и наоборот. проблема заключается в поиске и разбиении на страницы данных, которые исчезают, когда я активирую или дезактивирую персонал. – erinr

+1

Вы используете библиотеку Datatables. Затем, если вы загрузите другую таблицу без инициализации этой таблицы с данными, как и для первого типа данных, во второй таблице ничего не будет работать. Поэтому вы должны инициализировать свою вторую таблицу с помощью Datatables, чтобы получить все функции. Но я не понимаю, почему вы хотите загрузить страницу внутри элемента. Таблица обновления более подходит для вашего случая. – John

ответ

2

Вы должны изменить свой DataTable к серверу такой вот example. После этого вы можете добавить свои кнопки в каждой строке, как это:

table = $('#dataTables-example').DataTable({ 
    "serverSide": true, //Feature control DataTables' server-side processing mode. 

    // Load data for the table's content from an Ajax source 
    "ajax": { 
     "url": "<?php echo site_url('serversidedt/ajax_dt')?>", 
     "type": "POST" 
    }, 

    "columns": [ 
     {data: "fname"}, 
     {data: "lname"}, 
     {data: "email"}, 
     {data: "status"}, 
     {data: myButton, searchable: false, orderable: false} 
    ] 

}); 

function myButton(data, type, dataToSet) { 
    if(dataToSet.status == 1){ 
     return "<button class='btn btn-primary'>Active</button>"; 
    }else{ 
     return "<button class='btn btn-primary'>Desactive</button>"; 
    } 
}; 

И вы просто должны обновить DataTable так:

table.ajax.reload(null, false) 

Надеется, что это поможет.