SamL
(usa XUbuntu)
Enviado em 12/07/2023 - 12:30h
Veja com esse código se funciona.
Como não tenho como testar diretamente, fica ai pra vc mesmo testar.
Corrigi alguns erros de lógica, mas é bom que vc apague o cache o cookies do navegador, aperte control+shift+delete.
Isso fará com que os dados anteriores sejam deletados, o que pode ajudar na nova lógica do código abaixo.
Depois retorne ai caso tenha tido algum resultado.
<script>
//agora tabela é global
var tabela = undefined;
$(document).ready(function() {
function initEvents() {
if (!tabela) {
console.error("Tabela eh indefinida");
return;
}
tabela.on('draw', function() {
tabela.state.save();
});
tabela.on('search.dt', function() {
tabela.state.save();
});
tabela.on('length.dt', function() {
tabela.state.save();
});
tabela.on('order.dt', function() {
tabela.state.save();
});
tabela.on('page.dt', function() {
tabela.state.save();
});
tabela.on('processing.dt', function() {
tabela.state.save();
});
tabela.on('destroy', function() {
//removido
//localStorage.removeItem('estadoDaTabela');
});
}
function initDataTable() {
var estadoDaTabela = JSON.parse(localStorage.getItem('estadoDaTabela'));
if (estadoDaTabela && estadoDaTabela.pesquisa) {
$('#cotanum').val(estadoDaTabela.pesquisa.cotanum);
$('#cnpj').val(estadoDaTabela.pesquisa.cnpj);
$.ajax({
url: 'buscaItensCotacao.php',
type: 'POST',
data: $('#form-pesquisa').serialize(),
success: function(response) {
$('#resultado-pesquisa').html(response);
if ($.fn.DataTable.isDataTable('#resultado-pesquisa table')) {
tabela.destroy();
}
tabela = $('#resultado-pesquisa table').DataTable({
//ativa para salvar o state por padrão
stateSave: true,
stateSaveParams: function (settings, data) {
localStorage.setItem('estadoDaTabela', JSON.stringify(data));
},
stateLoadParams: function (settings) {
var data = localStorage.getItem('estadoDaTabela');
return JSON.parse(data);
},
language: {
url: 'inc/datatables/pt-BR.json'
},
paging: true
});
//inicializa os eventos
initEvents();
}
});
}
else {
tabela = $('#resultado-pesquisa table').DataTable({
//ativa para salvar o state por padrão
stateSave: true,
//cria os callbaks de save e load
stateSaveParams: function (settings, data) {
localStorage.setItem('estadoDaTabela', JSON.stringify(data));
},
stateLoadParams: function (settings) {
var data = localStorage.getItem('estadoDaTabela');
return JSON.parse(data);
},
language: {
url: 'inc/datatables/pt-BR.json'
},
paging: true
});
//inicializa os eventos
initEvents();
}
}
initDataTable();
$('#form-pesquisa').submit(function(event) {
event.preventDefault();
//salva a tabela atual
tabela.state.save();
$.ajax({
url: 'buscaItensCotacao.php',
type: 'POST',
data: $(this).serialize(),
success: function(response) {
$('#resultado-pesquisa').html(response);
if ($.fn.DataTable.isDataTable('#resultado-pesquisa table')) {
//destroi a tabela anterior
tabela.destroy();
}
//reinicia a tabela com os dados atuais
tabela = $('#resultado-pesquisa table').DataTable({
//ativa para salvar o state por padrão
stateSave: true,
stateSaveParams: function (settings, data) {
localStorage.setItem('estadoDaTabela', JSON.stringify(data));
},
stateLoadParams: function (settings) {
var data = localStorage.getItem('estadoDaTabela');
return JSON.parse(data);
},
language: {
url: 'inc/datatables/pt-BR.json'
},
paging: true
});
//inicializa os eventos
initEvents();
//salva a tabela atual atualizada
tabela.state.save();
}
});
});
});
</script>
https://nerdki.blogspot.com/ acessa ai, é grátis
Não gostou? O ícone da casinha é serventia do site!