
Originariamente inviata da
Luigi636
Quindi in pratica invece di dargli l'output della tabella in html devo togliere tutto e creare un file PHP che mi genera un Json da cui il datatables andrà a prendersi i dati.. Giusto?
Se è cosi, mi aspetta un bel lavoro.. Ci saranno circa 25 tabelle da generare..
si più o meno si.
bhe cerca creare una funzione js parametrizzata, in cui magari indichi la tabella (SQL) da cui prendere i dati.
cmq ho visto datables manda parecchi parametri in GET quando fa la richiesta.
ti scrivo l'esempio php su cui sto lavorando.
non funziona al 100%, ma domani continuo a lavorarci.
questo il js:
codice:
function dtClassicAjax(id) {
$(id).dataTable({
"processing": true,
"serverSide": true,
"ajax": 'clienti.php'
});
}
questo il php:
Codice PHP:
$start = $_GET['start'];
$length = $_GET['length'];
$draw = $_GET["draw"];
$orderByColumnIndex = $_GET['order'][0]['column'];
$orderBy = $_GET['columns'][$orderByColumnIndex]['data'];
$orderType = $_GET['order'][0]['dir'];
// $cmd = 'SELECT * FROM clienti WHERE cliente_clde = "CL" ORDER BY ' . $orderBy . ' ' . $orderType . ' LIMIT ' . $start . ',' . $length;
$cmd = 'SELECT * FROM clienti WHERE cliente_clde = "CL" ORDER BY cliente_codice ' . $orderType . ' LIMIT ' . $start . ',' . $length;
$connessione = Connessione::getInstance();
$clienti = new Clienti($connessione);
$columns = array(
array('db' => 'CODICE', 'dt' => 0),
array('db' => 'RAG SOC', 'dt' => 1),
array('db' => 'MENM', 'dt' => 2),
array('db' => 'PIVA', 'dt' => 3),
array('db' => 'EMAIL', 'dt' => 4),
array('db' => 'ATTIVO', 'dt' => 5)
);
$rows = $clienti->getByTipoLimit($cmd);
$out = array();
foreach ($rows as $var) {
$row = array();
$row[$columns[0]['dt']] = $var['cliente_codice'];
$row[$columns[1]['dt']] = $var['cliente_ragsoc'];
$row[$columns[2]['dt']] = $var['cliente_mnemonico'];
$row[$columns[3]['dt']] = $var['cliente_piva'];
$row[$columns[4]['dt']] = $var['cliente_email'];
$row[$columns[5]['dt']] = $var['cliente_attivato'];
$out[] = $row;
}
$res = array(
"draw" => $draw,
"recordsTotal" => count($rows),
"recordsFiltered" => count($rows),
"data" => $out
);
echo json_encode($res);
i GET arrivano in automatico da datatbles.
questa la stringa di esempio che arriva al server:
codice:
http://.....?draw=1&columns[0][data]=0&columns[0][name]=&columns[0][searchable]=true&columns[0][orderable]=true&columns[0][search][value]=&columns[0][search][regex]=false&columns[1][data]=1&columns[1][name]=&columns[1][searchable]=true&columns[1][orderable]=true&columns[1][search][value]=&columns[1][search][regex]=false&columns[2][data]=2&columns[2][name]=&columns[2][searchable]=true&columns[2][orderable]=true&columns[2][search][value]=&columns[2][search][regex]=false&columns[3][data]=3&columns[3][name]=&columns[3][searchable]=true&columns[3][orderable]=true&columns[3][search][value]=&columns[3][search][regex]=false&columns[4][data]=4&columns[4][name]=&columns[4][searchable]=true&columns[4][orderable]=true&columns[4][search][value]=&columns[4][search][regex]=false&columns[5][data]=5&columns[5][name]=&columns[5][searchable]=true&columns[5][orderable]=true&columns[5][search][value]=&columns[5][search][regex]=false&order[0][column]=0&order[0][dir]=asc&start=0&length=10&search[value]=&search[regex]=false&_=1465832288870