Hier findest du einen Codeschnippsel um Data Tables in Bootstrap immer aktuell darzustellen. Der erste Teil kommt in den Scriptbereich in der Datei wo die Tabele dargestellt werden soll. Das Script greift auf eine php Datei zu. In der php Datei werden dann die Daten für die Tabelle erzeugt. Es lässt sich so nur die Tabelle aktualisieren. Dann muß nicht immer die ganze Seite geladen werden.
<script>
$('#TblKunden').dataTable(
{
"ordering": true,
"paging": true,
"info": true,
"searching": true,
"processing": true,
"serverSide": true,
"columns":[{"title" : "spalte"},{"title" : "spalte1"},{"title" : "spalte2"},{"title" : "spalte3"}],
"ajax": '/scripte/ajax_DeiineTabellenAbfrage.php'
})
</script>
<?php
verbinden_mysqli();
// Alle Variablen initalisieren
$params = $columns = $totalRecords = $data = array();
$params = $_REQUEST;
// Die Spaltennamen festlegen
$columns = array(
0 =>'spalte',
1 =>'spalte1',
2 =>'spalte2',
3 =>'spalte3');
$where = $sqlTot = $sqlRec = "";
// Wenn eine Suche eingegeben ist prüfen ob der Suchbegriff existiert
if( !empty($params['search']['value']) ) {
$where .=" WHERE ";
$where .=" ( spalte LIKE '".$params['search']['value']."%' ";
$where .=" OR spalte1 LIKE '".$params['search']['value']."%' ";
$where .=" OR spalte2 LIKE '".$params['search']['value']."%' )";
}
// Anzahl der Datensätze ermitteln
$sql = "SELECT spalte,spalte1,spalte2,DATE_FORMAT(spalte3,'%d.%m.%Y %H:%i') AS spalte3 FROM `DeineTabelle` ";
$sqlTot .= $sql;
$sqlRec .= $sql;
// Den Suchstring verketten wenn Suchparameter vorhanden sind
if(isset($where) && $where != '') {
$sqlTot .= $where;
$sqlRec .= $where;
}
$sqlRec .= " ORDER BY ". $columns[$params['order'][0]['column']]." ".$params['order'][0]['dir']." LIMIT ".$params['start']." ,".$params['length']." ";
$queryTot = mysqli_query($Connection, $sqlTot) or die("database error:". mysqli_error($Connection));
$totalRecords = mysqli_num_rows($queryTot);
$queryRecords = mysqli_query($Connection, $sqlRec) or die("error to fetch DeineTabelle data". mysqli_error($Connection));
while( $row = mysqli_fetch_row($queryRecords) ) {
$data[] = $row; }
$json_data = array(
"draw" => intval( $params['draw'] ),
"recordsTotal" => intval( $totalRecords ),
"recordsFiltered" => intval($totalRecords),
"data" => $data
);
echo json_encode($json_data);
trennen_mysqli($Connection);
// Antwort als JSON abschicken
?>