datatable serverside ne filtre pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : datatable serverside ne filtre pas

Re: datatable serverside ne filtre pas

par mije69 » 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

Re: datatable serverside ne filtre pas

par or 1 » 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 ?

datatable serverside ne filtre pas

par mije69 » 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);