2015-03-16 9 views
5

Problem jest dość prosty. Podczas korzystania z podstawowej inicjalizacji przetwarzania serwera tylko tekst jest wyświetlany na stronie. Raczej wyciąga DOKŁADNIE to, co jest w kolumnach bazy danych w kolumnach tabeli bez dodatkowego formatowania HTML.Jak sformatować/dostosować dane w kolumnach tabeli za pomocą przetwarzania serwera datatables?

Przykład: tutaj jest plik formatu sformatowanego tekstu: HTML i CSS - . Każda kolumna tabeli ma własny styl/format. Teraz, gdy przetwarzanie serwera wykonuje żądanie do serwera/bazy danych, wyniki są, tak jak powiedziałem, dokładnie takie, jakie są w bazie danych. Aby uzyskać ten format, jak pokazano powyżej, musiałbym umieścić kod HTML w bazie danych. IE:

<span class="label label-danger">Tag</span> 

lub

<span class="label bg-color-greenDark">Category Label</span> 

Jak mogę formatować wyniki są pobierane z bazy danych i do kolumn tabeli na stronie? Wolałbym umieścić tylko TAG w kolumnie znacznika, a nie cały znacznik HTML, który się z nim zgadza.

Czy istnieje sposób na przechwycenie wyników przed trafieniem na stronę, sformatowanie ich, a następnie wysłanie do strony?

KOD:

$(document).ready(function() { 
    $('#example').DataTable({ 
     "processing": true, 
     "serverSide": true, 
     "ajax": "scripts/server_processing.php", 

      "columnDefs": [ { 
      "data": "firstname", //this name should exist in you response JSON 
      "render": function (data, type, full, meta) { 
       return '<span class="label label-danger">'+data+'</span>'; 
      } 
      } ] 

    }); 
}); 
+0

w twoim kodzie, twoja tabela powinna mieć 'id =" example "' i będzie miała tylko 1 kolumnę, czy to prawda? –

Odpowiedz

8

należy wybrać opcję render w kolumnie, coś jak to:

$('#example').dataTable({ 
    "columnDefs": [ { 
    "targets": 0,//index of column starting from 0 
    "data": "column_name", //this name should exist in your JSON response 
    "render": function (data, type, full, meta) { 
     return '<span class="label label-danger">'+data+'</span>'; 
    } 
    } ] 
}); 

sprawdzanie docs: DataTables columns.render.
Użyj parametru data, aby dopasować właściwość/klucz obiektu źródłowego/tablicy. Jeśli nie używasz żadnych klawiszy, użyj targets. Read the doc

+0

Twoja odpowiedź była absolutnie właściwa. Dziękuję za szybką odpowiedź. – user3870816

+0

Mam problem z uruchomieniem go. Ten ofc jest moją własną winą. Nie jestem najlepszy w JS w żaden sposób. Kod, który mi przedstawiłeś, będzie działać tak, jak jest? Próbowałem dodać to do mojego własnego kodu, ale nie jestem pewien, co zmienić. "data": "column_name", // ta nazwa powinna istnieć w tobie odpowiedź JSON Dla "column_name" jest nazwa kolumny w datatables, w bazie danych to self lub żadne? Gdzieś indziej. – user3870816

+0

to tylko przykład, to nie powinno działać z twoim kodem. Musisz zmodyfikować 'dane', może to być ta sama nazwa kolumny w bazie danych, o ile jest obecna w odpowiedzi JSON otrzymanej z serwera lub w początkowych danych. Opublikuj przykład swoich początkowych danych i swojego kodu 'js', a ja ci pomogę. –

Powiązane problemy