Ir para conteúdo
Fórum Script Brasil
  • 0

Busca.


Guest --Akira --

Pergunta

Guest --Akira --

Olá pessoal,

Sou novato em javascript e to com um problema, tenho uma tabela em banco de dados com cerca de 7000 registros, eu carrego ela toda em um combo,

mas queria fazer uma busca dentro desse combo para ver se encontro um registro desse combo,

Fiz da seguinte forma,

function fn_busca_proced(busca){

var vc_busca = busca.toUpperCase();

//apaga os registro da combo onde deve ser colocado os registros encontrados

for (i = document.frm_proced.lst_procedimentos.length -1; i >= 0; i--)

document.frm_proced.lst_procedimentos.options = null;

// Objeto 'todos' é a combo onde possui todos os procedimentos

for (i=0; i < document.frm_proced.todos.length; i++){

//verifica se o primeiro char e 0 pois se n for não pode ser adicionado na outra combo

if(document.frm_proced.todos.options.value.substring(0,1) == 0){

if (document.frm_proced.todos.options.text.indexOf(vc_busca) != -1)

{

//objeto 'lst_procedimentos' é onde coloco os registros encontrados na busca.

document.frm_proced.lst_procedimentos.options[document.frm_proced.lst_procedimentos.length] = new Option(document.frm_proced.todos.options.text);

document.frm_proced.lst_procedimentos.options[document.frm_proced.lst_procedimentos.length - 1].value = document.frm_proced.todos.options.value.substring(2);

}

}

}

}

Fiz esta função mas ela por causa do loop demora cerca de 6 segundos para rodar o que é muito já que fiz essa função para rodar toda vez que ele digite alguma letra.

Ah outra maneira de efetuar essa busca??

Obrigado.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
Guest --Akira --

Sim pois o usuario ira selecionar alguns registros para gravar e muitos tem nome diferentes,

e efetuar a busca pelo sql acredito que ira tomar mais tempo que listar todos eles.

e efetuar a busca pelo javasript.

Link para o comentário
Compartilhar em outros sites

  • 0

Coitado dos teus usuarios pra ver 7000 opcoes num combo rssss

mas montei um exemplo simples:

<script>
function Procura()
{
var ArrayMes = new Array("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");

for (i=0; i <= ArrayMes.length; i++)
{
    if (ArrayMes[i] == "Maio")
    {
        alert("achou");
        exit;
    }
}
alert("não achou");
}
</script>

<a href="#" onclick="Procura()">link</a>

Eu não tenho certeza se a funcao search do javascript pode ser usada sem FOR... mas se eu achar codigo melhor te aviso

Link para o comentário
Compartilhar em outros sites

  • 0

Eu confundi não ser um combo, é um list.

mas mesmo assim é dificil ver os 7000 registros,

Por isso queria a busca pois pensei que não ia ser tão lerdo o Js procurar,

pelo que eu vi da função search do Js, ela procura em uma string.

sem o for no caso da list não daria ser,

O problema mesmo e que é muitos registros e o for pra correr todos eles demora muito pra executa.

Editado por Tenshi-san
Link para o comentário
Compartilhar em outros sites

  • 0

Po eu vo insistir na mesma questao... tem CERTEZA que é necessario exibir TODOS os 7.000 registros???

será que não tem como voce filtrar antes? Por exemplo, imagina que desses 7000 o usuario queira ver somente os registros referentes ao mês de Janeiro. Voce não precisaria mostrar de todos os meses, somente o de janeiro.

então criaria uma tela antes da exibição, com combo para o usuario selecionar qual mês referente ele quer...

Se esses registros forem aumentado vai ficar muito complicado!

O que pode também ser feito pra amenizar a espera e impaciencia do usuario, é um "Aguarde..."

Link para o comentário
Compartilhar em outros sites

  • 0

O problema andreia é que por exemplo eu carrego parte do registro e a pessoa quer

procurar um dos registros que não tem nessa faixa eu terie que efetuar a busca no banco.

Pois os meus registro é dificil definir quais os pricipais registros para mostrar so eles..

Vo tentar por array.

Obrigado Mestre-san e Andreia, mesmo pelo array ele ficou muito devagar.

sou obrigado a fazer a pesquisa pelo ajax mesmo.

Obrigado pela ajuda.

Obs. Gostei muito do forum é a primeira vez que frequento este forum, mas vou passa a frequentar mais. pois pelo o que vi aqui existem muitas pessoas legais, e fico a disposição quando encontrar uma duvida e poder ajudar irei ajudar com muito prazer pois acredito que foi isso que vocês fizeram.

Novamente Obrigado.

Editado por Tenshi-san
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...