RESULTADO DE UM SELECT EM UM FORM DUPLICA
09/08/2017
0
Gostaria de um auxílio na seguinte demanda:
Tenho um problema ao carregar uma lista em um formulário pois a pesquisa realizada por um botão, não está limpando ou dando um refresh na página para colocar os outros dados, assim, ele está acumulando as informações como na imagem abaixo:
[img]https://image.prntscr.com/image/4HvJ6XRBR8m3bbfsHbUFtQ.png[/img]
<button type="button" class="btn btn-success " onclick="selecaoAreaCargo()">Pesquisar</button> </form> <div class="col-md-8 col-md-offset-2 tabelaRespondidos" id="tabelaRespondidosT"> <ul class="nav nav-tabs nav-justified"> <li role="presentation" class="active"><a href="#respondidos" data-toggle="tab">Formulários Respondidos</a></li> <li role="presentation"><a href="#naoRespondidos" data-toggle="tab">Formulários não Respondidos</a></li> </ul> <br> <div class="tab-content"> <div class="tab-pane active" id="respondidos"> <table class="table tabela1"> <thead> <tr> <th>Nome do funcionário</th> <th>Supervisor</th> <th>Ação</th> </tr> </thead> <tbody> </tbody> </table> <script id="tmplLinha" type="text/template"> <tr> <td>{}</td> <td>{}</td> <td> <a href="levantamento-funcional-formulario-editar.php" class="imgLupa"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></a> </td> </tr> </script> </div> <div class="tab-pane" id="naoRespondidos"> <table class="table tabela2 text-center"> <thead> <tr> <th class="text-center">Nome do funcionário</th> </tr> </thead> <tbody> </tbody> </table> <script id="tmplLinha2" type="text/template"> <tr> <td>{}</td> </tr> </script> </div> <div class="col-sm-1 col-md-offset-5" id="GeraExcel"> <button type="button submit" class="btn btn-link"> <img class="imgExport" src="img/excel.ico" alt="Ícone de exportação para o excel"> </button> </div> </div> </div>
Função>
function selecaoAreaCargo() { var area = $("#areaEscolhida").val(); var cargo = $("#cargoEscolhido").val(); $.ajax({ type: 'POST', url: 'includes/selecaoAreaCargoParaResultado.php', data: { area: area, cargo: cargo }, dataType: "json", success: function (data) { if(data === null){ alert("Não existem dados para serem exibidos!"); } for (var indice = 0; indice < data.length; indice++) { if (data[indice].respFormulario == 1) { var tabela = document.querySelector(".tabela1 tbody"); // inicializando o template. var tmplSource = document.getElementById("tmplLinha").innerHTML; var tmplHandle = Handlebars.compile(tmplSource); var pessoa = {}; pessoa.nomeFunc = data[indice].nomeFuncionario; pessoa.supervisor = data[indice].tituloCargoSuperiorImediato; // preparando fragmento HTML. var linha = {}; linha.template = document.createElement("template"); linha.template.innerHTML = tmplHandle(pessoa); linha.content = document.importNode(linha.template.content, true); // inserindo linha na tabela. tabela.appendChild(linha.content); } else { var tabela = document.querySelector(".tabela2 tbody"); $("#acaoLinha").hide(); // inicializando o template. var tmplSource = document.getElementById("tmplLinha2").innerHTML; var tmplHandle = Handlebars.compile(tmplSource); var pessoa = {}; pessoa.nomeFunc = data[indice].nomeFuncionario; pessoa.supervisor = data[indice].tituloCargoSuperiorImediato; // preparando fragmento HTML. var linha = {}; linha.template = document.createElement("template"); linha.template.innerHTML = tmplHandle(pessoa); linha.content = document.importNode(linha.template.content, true); // inserindo linha na tabela. tabela.appendChild(linha.content); } } }, error: function (data) { console.log(data); alert('Houve um erro, tente novamente mais tarde!'); } }); }
Salute Especializadas
Post mais votado
09/08/2017
Thiago Moreno
Mais Posts
09/08/2017
Wilson Neto
Exatamente, se está "apendando" novas linhas a cada chamada dessa função, o ideal seria "limpar" as linhas "antigas " no "success" ou no inicio da função:
function selecaoAreaCargo() { //Aqui, algo como : $(".tabela1 tbody > * ").remove(); $(".tabela2 tbody > * ").remove(); var area = $("#areaEscolhida").val();
Nesse trecho abaixo é removido "o filho direto" do seletor body ( a partir da tabela 1 e tabela 2 [Acredito que possa ser definido dessa forma, front não é muito meu forte...rs]).
$(".tabela1 tbody > * ").remove(); $(".tabela2 tbody > * ").remove();
Enfim, isso pode ajudar a resolver. :)
11/08/2017
Salute Especializadas
11/08/2017
Wilson Neto
Show! :D
Clique aqui para fazer login e interagir na Comunidade :)