Criar pesquisa por filtros

Tens alguma dúvida especifica?

Podes (por exemplo) implementar os vários tipos de consulta e mostras/escondes aquilo que pretendes através de eventos.

Em cada evento verificas o valor actual, consoante o valor mostras a informação pretendida, escondes a informação indesejada e alteras o que for necessário (como texto, imagens, etc) (podes ainda utilizar um pouco de Jquery para descomplicar).

Outra alternativa seria utilizares AJAX, isto é, removeres a parte que não necessitas (por exemplo, um div que agrupa os objectos de uma determinada consulta), mostrar um .gif de loading e tratares os dados devolvidos pelo servidor.

EDIT:

Esqueci-me de referir que não considero dificil mas é trabalhoso dependendo da quantidade de condições.
 
Última edição:
Hmm... Se não quiser guardar os valores numa base de dados não será preciso usar PHP? Basta Javascript?
Não tinha nenhuma dúvida específica porque não sou programador e nem sabia por onde começar.
 
Eventualmente podes implementar o funcionamento da consulta apenas com JS (dependendo se não necessitas de efectuar uma query à BD, por exemplo, para limitar no calendário determinados dias de voo que estão lotados), no entanto, como o objectivo da consulta é devolver informação (que estará armazenada numa BD, caso contrário não faria sentido aplicar uma consulta detalhada), terás de utilizar também PHP (ou outra server-side language) pelo menos numa fase final para comunicares com o servidor.

Talvez o melhor seja começares por implementar e compreender querys simples utilizando PHP e MySQL e posteriormente aprenderes um pouco sobre o DOM (Document Object Model) de JavaScript e como funciona.
 
Um pequeno exemplo que esboça o tipo de raciocínio que podes utilizar com PHP e JS (aconselho também a utilizares um pouco de Jquery para simplificar algumas partes):

Código:
function verifica_tipo_consulta(cb) {
     // Checkbox alterada para checked, então:
          // Alterar título da consulta, imagem, esconder o div activo e mostrar o div pretendido
}

// ===== BEGIN CONSULTA =====

<input type="checkbox" value="0" id="cb_voo" onchange="verifica_tipo_consulta(this);" /> VOO
<input type="checkbox" value="1" id="cb_hotel" onchange="verifica_tipo_consulta(this);" /> HOTEL
<input type="checkbox" value="2" id="cb_voo_hotel" onchange="verifica_tipo_consulta(this);" /> VOO + HOTEL
<input type="checkbox" value="3" id="cb_ferias" onchange="verifica_tipo_consulta(this);" /> FÉRIAS
<input type="checkbox" value="4" id="cb_escapadelas" onchange="verifica_tipo_consulta(this);" /> ESCAPADELAS

// Tipo de consulta para VOO (show)
<div>
     // Content
</div>


// Tipo de consulta para HOTEL (hide)
<div>
     // Content
</div>


// Tipo de consulta para VOO + HOTEL (hide)
<div>
     // Content
</div>


// Tipo de consulta para FÉRIAS (hide)
<div>
     // Content
</div>


// Tipo de consulta para ESCAPADELAS (hide)
<div>
     // Content
</div>


// ===== END CONSULTA =====

Há algumas coisas que poderiam ser melhoradas mas aqui o objectivo é dar o primeiro arranque na forma de pensar.
 
Back
Topo