datatable serverside ne filtre pas

Eléphanteau du PHP | 24 Messages

16 juin 2022, 14:43

Bonjour,

j'ai un tableau (datatable) il récupère les données sur une base de donné, tous fonctionne correctement.
Seulement il m'affiche la totalité de mes données et ne filtre pas par 10 ou 25 ou 50....
si je demande 10 il m'affiche mes 25 ligne sur une page.
je pense que cela viens de mon "fetch" car il me renvoie la totalité:

Code : Tout sélectionner

{draw: 1, recordsTotal: 22, recordsFiltered: 22,…} data: [["1 001 6325", "dossier test", "Japell", "1850", "24-06-2022",…],…] draw: 1 recordsFiltered: 22 recordsTotal: 22

mais je ne vois pas comment faire j'ai regarder la doc sur datatables mais je ne vois toujours pas comment faire.
voici mon fichier fetch:
<?php
include('db.php');
include('functions.php');
$tab_results = get_all_Posts();
$results = $tab_results['results'];
$recordsTotal = $tab_results['count'];
$filtered_rows = $recordsTotal;

if (isset($_POST["search"]["value"])) {
$searched_value = $_POST["search"]["value"];
$tab = get_all_Posts($searched_value);
$results = $tab['results'];
$filtered_rows = $tab['count'];
}

error_log(print_r($results, true));

$data = array();
if (count($results) > 0) {
foreach ($results as $p) {
$sub_array = array();
$sub_array[] = $p['ndossier'];
$sub_array[] = $p['titre'];
$sub_array[] = $p['transporteur'];
$sub_array[] = $p['tirage'];
$sub_array[] = date('d-m-Y', strtotime($p['enlevement']));;
// date('d-m-Y', strtotime($p['enlevement']));
// $sub_array[]=$span;


$btn_update = '<button id="' . $p['idPost'] . '" title="mettre à jour" name="update" class="btn btn-link btn-warning btn-just-icon edit"><i class="material-icons" class="update" >update</i></button>';
$btn_delete = '<button id="' . $p['idPost'] . '" title="supprimer" name="delete" class="btn btn-link btn-danger btn-just-icon delete"><i class="material-icons" class="delete" >close</i></button>';
$btn_print = '<button id="' . $p['idPost'] . '" title="bon de livraison" name="print" class="btn btn-link btn-success btn-just-icon print"><i class="material-icons" class="print" >print</i></button>';
$btn_file = '<button id="' . $p['idPost'] . '" title="dossier de fabrication" name="file" class="btn btn-link btn-info btn-just-icon file"><i class="material-icons" class="file" >picture_as_pdf</i></button>';
$sub_array[] = $btn_update . $btn_delete .$btn_print .$btn_file;

$data[] = $sub_array;
}
}

$output = array(
"draw" => (isset($_POST["draw"])) ? intval($_POST["draw"]) : 0,
"recordsTotal" => $recordsTotal,
"recordsFiltered" => $filtered_rows,
"data" => $data
);
echo json_encode($output);

Mammouth du PHP | 2703 Messages

16 juin 2022, 14:55

si je demande 10 il m'affiche mes 25 ligne sur une page.
où voit-on dans ce code qu'il est demandé 10 résultats seulement ?

Eléphanteau du PHP | 24 Messages

17 juin 2022, 08:07

Sur les datatables il y a un filtre comme ceci
Image
j'ai bien compris que en serverside ça ne ce fais plus automatiquement.
mais je ne vois pas comment le faire. #-o