2016-10-21 4 views
1

ich habe meine Seite komplett mit Datentabellen, die in diesem Bild enter image description hereDatentabellen funktionieren nicht, wenn bestimmte Seite obwohl id Laden

ich ein Problem habe, sobald ich meine Mitarbeiter aktivieren oder deaktivieren die Datentabellen suchen und sortieren verschwunden sein. Ich denke, mein Fehler ist im Ladeteil. Was ist der richtige Weg, um eine bestimmte Seite mit div id zu laden?

dies ist der Ausgang, wenn activate oder meine Mitarbeiter deaktivieren hier ist enter image description here

Coz, was ich in meinem base_url tat, ist + „Admin/Benutzerseite,“ es ist eine Seite für die Nutzer und Mitarbeiter. Ich habe gerade getan, wenn ich Presse-Personal drücke, wird es den Benutzer verbergen und wird die Personal-Seite zeigen, die in demselben Link.

, die meinen Code gibt es hier

$(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(); 
});}) 

in activate meinen Code ist hier

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"); 
     } 
    }); 
})} 

und für deactivate ist hier

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

Warum eine andere Seite laden? Warum aktualisieren Sie den Tisch nicht? – John

+0

@John im nur zu erforschen oder sagen lassen, versuchen, wenn es einen Weg gibt, dass ich in 1 Seite den Benutzer und das Personal zusammenführen werde. Wenn ich zum Beispiel Mitarbeiter anklicke, wird die Mitarbeiter-ID angezeigt und die ID der Benutzer und umgekehrt angezeigt. Das Problem ist, dass die Suche und die Seitennummerierung der Datenblätter weg ist, wenn ich das Personal aktivierte oder deaktivierte. – erinr

+1

Sie verwenden die Datatables-Bibliothek. Wenn Sie dann eine andere Tabelle laden, ohne diese Tabelle mit Datatables zu initialisieren, wie Sie es für die erste Datentabelle getan haben, wird nichts in der zweiten Tabelle funktionieren. Sie müssen also Ihre zweite Tabelle mit Datatables initialisieren, um alle Funktionen zu erhalten. Aber ich verstehe nicht, warum Sie eine Seite in ein Element laden wollen. Die Aktualisierungstabelle ist für Ihren Fall besser geeignet. – John

Antwort

2

Sie haben Ihre Datatable-Server ändern -Seite wie diese 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>"; 
    } 
}; 

Und Sie einfach Ihre Datentabelle wie folgt aktualisieren müssen: Danach können Sie Ihre Tasten auf jeder Zeile wie dieses Add

table.ajax.reload(null, false) 

Hoffe, es hilft.

Verwandte Themen