Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Willian Vieira

Consultas Simutâneas com Ajax

Recommended Posts

Srs,

 

Tenho um formulário de consulta onde ao preencher qualquer campo, com o evento onblur e ajax, é feito uma consulta via PHP ao BD que me retorna o resultado logo abaixo em uma div.

 

Estou fazendo assim:

 

<form name="frmconsultaItemConfiguracao" action="#" method="post">
 <fieldset>
 <legend>Formulário de Pesquisa de Item de Configuração</legend>
 <label>Patrimônio: <input type="text" name="patrimonio" onblur="filtroPatrimonio(this.value);"></label>
 <label>Hostname:<input type="text" name="hostname" onblur="filtroHostname(this.value);"></label>
 <label>Qt de Processador:<input type="text" name="qtprocessador" onblur="filtroQtProcessador(this.value);"></label>
 <label>Qt de Memória:<input type="text" name="qtmemoria" onblur="filtroQtMemoria(this.value);"></label>
 .... 
 <label class="button"><input type="button" value="Filtrar" onclick="document.frmconsultaItemConfiguracao.submit();"></label> 
 </fieldset> 
 </form> 
 <div id="consulta"></div>

Acontece que para cada INPUT, tenho que ter um função em Javascript que pegue esse resultado e envir ao PHP....

Veja:

function filtroPatrimonio(valor){
 var xmlhttp = ajax();
 xmlhttp.onreadystatechange = function(){
 ....
 // Envia via método GET as informações 
 var url="?controller=ItemConfiguracao&action=filtro&patrimonio=" + valor + "&" + Math.ceil(Math.random() * 100000 ); 
 xmlhttp.open("GET",url,true);
....
}

function filtroHostname(valor){
 var xmlhttp = ajax();
 xmlhttp.onreadystatechange = function(){
...
 // Envia via método GET as informações 
 var url="?controller=ItemConfiguracao&action=filtro&hostname=" + valor + "&" + Math.ceil(Math.random() * 100000 ); 
 xmlhttp.open("GET",url,true);
....
}

...assim por diante

Quando preciso fazer dois filtros simutâneos, exemplo filtrar qtprocessador=2 e qtmemoria=4, não consigo. Ou filtra só qtprocessador ou só qtmemória.

 

Alguém tem alguma idéia de como posso melhorar esse código e fazer filtros simutâneos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano porque você não faz só uma função e passa o valor e o tipo do valor , q no caso seria o patrimonio e ou hostname !

 

E outra você não teria q fazer a requisição primeiro com o metodo open() antes do onreadystateschange, porque o metodo onreadystateschange fica chamando a função em cada estado da requisição de 0 há 4 .... tenta coloca o metodo open() antes do onreadystateschange ...... deve funcionar !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.