Hello everybody, I know it is a problem already dealt with but I cannot find a solution.
A column has comma separated values, but with select I created I can't filter the results.
What am I doing wrong? Can you please help me?
This is my td:
<td>Value 1, Value 2 / Value2, Value 3 / Value 3, Value 4</td>
This is my js:
initComplete: function() {
var ValoriUnici = [];
this.api().columns([1, 2, 3, 4, 5, 6, 7, 8, 9]).every(function() {
var column = this;
var nomeColonna = column.header().textContent;
var select = $(
'<select class="form-control"><option value="">- Filtra per ' +
nomeColonna + ' -</option></select>')
//.appendTo($(column.footer()).empty())
.appendTo($('.divFiltri'))
.on('change', function() {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search(val ? '^' + val + '$' : '', true, false, true)
.draw();
});
column.data().unique().sort().each(function(d, j) {
var d = d.replace('<span class="badge badge-si">',"");
d = d.replace('<span class="badge badge-no">',"");
d = d.replace('</span>',"");
//splitto le eventuali virgole separatrici e controllo se i valori sono unici all'interno dell'array, se così è li stampo
$.each(d.split(', '), function(key, value) {
if (ValoriUnici.indexOf(value) == -1) {
select.append('<option value="' + d + '">' + (value == '-1' ? 'select' : value) + '</option>');
ValoriUnici.push(value);
}
});
//select.append('<option value="' + d + '">' + d +'</option>');
});
select.wrap($(
'<div class="col-lg-2 contenitore-filtro-datatable mb-10">'
));
});
},