jquery dataTables - obtenir des valeurs de colonne filtrées
j'utilise un jquery dataTable et lorsque l'utilisateur sélectionne une goutte vers le bas il recherche la table de données et la filtre et redessine le contenu basé sur les données recherchées :
mtTable.columns().each(function() {
mtTable.column(22).search(searchVal, true, true).draw();
});
maintenant j'essaie d'obtenir toutes les valeurs de la colonne après une recherche, mais je ne trouve pas de fonction pour faire ça. Actuellement, j'utilise l'api
var myTable = $("#tblResults").DataTable();
var resultsArray = myTable.columns(colIndex).data();
selon la documentation cela retournera toutes les données de l'intérieur de la colonne non filtrée. Je ne peux pas trouver un fonction pour me donner un tableau des valeurs de la colonne pour les données filtrées seulement.
2 réponses
vous pouvez tout lire sur les dataTables avancés selector-modifiers
ici -> http://datatables.net/reference/type/selector-modifier
Si vous souhaitez obtenir des lignes filtrées seulement :
table.rows( { search:'applied' } ).data().each(function(value, index) {
console.log(value, index);
});
Pour cible une colonne spécifique, et d'obtenir les valeurs filtrées seulement (à votre demande) - ici, toutes les valeurs filtrées à partir de la colonne n ° 2 :
table.column(2, { search:'applied' } ).data().each(function(value, index) {
console.log(value, index);
});
Voir la démo avec les deux -> http://jsfiddle.net/q0e1bdcz/
Pour créer un tableau des valeurs filtrées pour une colonne spécifique:
var array = [];
table.column(2, { search:'applied' } ).data().each(function(value, index) {
array.push(value);
});
console.log(array);
Voir la démo -> http://jsfiddle.net/q0e1bdcz/1/
Vous pouvez également obtenir des données uniques et triées si vous avez plus d'entrées.
// Datatable object
var table = $('#example').DataTable();
// Get Unique and Sorted values.
table.column(3, { search:'applied' } ).data().unique().sort().each(function(value, index) {
console.log(value, index);
});
J'espère que cela aidera aussi.