У меня есть некоторые div на моей странице (сборка с php + jquery), и я хочу их фильтровать в соответствии с их атрибутами (если есть более 1 фильтра атрибутов, чем это сужает поиск). В div's выглядеть следующим образом:Несколько фильтров с JQuery
<div id="solicitacoes">
<div id='1' title='Mike' status='18' analista='23'>Whatever content 1</div>
<div id='2' title='John' status='16' analista='46'>Whatever content 2</div>
<div id='3' title='Tom' status='2' analista='49'>Whatever content 3</div>
<div id='4' title='Mike' status='4' analista='23'>Whatever content 4</div>
<div id='5' title='Kate' status='3' analista='32'>Whatever content 5</div>
<div id='6' title='Steve' status='1' analista='14'>Whatever content 6</div>
</div>
Тогда у меня есть форма для фильтрации div's атрибуты:
<div id="filtros">
<form id="filtroSolicitacoes" type="post" name="filtroSolicitacoes">
Protocolo: <input type="text" name="filtroProtocolo" id="filtroProtocolo" size="5"/>
Solicitante: <input type="text" name="filtroSolicitante" id="filtroSolicitante" size="10"/>
Status:
<select name="filtroStatus" id="filtroStatus">
<option value="0">-- Selecione Status--</option>
<option value="3">Aguardando Aprovação</option>
<option value="18">Encaminhado</option>
<option value="2">Iniciado</option>
<option value="1">Não Iniciado</option>
<option value="4">Pendente de Esclarecimento</option>
<option value="16">Reiniciado</option>
<option value="6">Reprovado</option>
</select>
Analista:
<select name="filtroAnalista" id="filtroAnalista">
<option value="23">Robert</option>
<option value="46">Allan</option>
<option value="49">Edward</option>
<option value="32">Jake</option>
<option value="14">Stella</option>
</select>
<button type="submit" id="filtrar" style="float:right; margin-right:10px">:: Filtrar ::</button>
</form>
</div>
Теперь I've сделано большинство настроек уже детали Jquery и фильтр работает ---> Но я хочу сужать поиск, если there's атрибут более чем 1 фильтрация, НЕ сцепить его и that's происходит с как там мой код ниже:
$("#filtroSolicitacoes").submit(function() {
$("#solicitacoes > div").show();
var filtroProtocolo = $("#filtroProtocolo").val();
var filtroSolicitante = $("#filtroSolicitante").val().toUpperCase();
var filtroStatus = $("#filtroStatus").val();
var filtroAnalista = $("#filtroAnalista").val();
var filtroResultado = $("#filtroResultado:checked").length;
var filtros = "[id=filtros]";
if(filtroStatus !== "0"){
filtros +=",[status='"+filtroStatus+"']";
}
if(filtroProtocolo !== ""){
filtros +=",[id='"+filtroProtocolo+"']";
}
if(filtroSolicitante !== ""){
filtros +=",[title*='"+filtroSolicitante+"']";
}
if(filtroAnalista !== "0"){
filtros +=",[analista='"+filtroAnalista+"']";
}
if(filtros !== "[id=filtros]"){
$("#solicitacoes > div:not("+filtros+")").hide();
}
return false;
});
I've пытался использовать "& &" вместо "" в
filtros +=",[analista='"+filtroAnalista+"']";
Но didn't работу.
любые идеи?
PS: Извините за мой плохой английский, I'm бразильские :)
Идиотический вопрос (я знаю, так простите меня заранее): Функция фильтра работает наоборот, поэтому var filterList будет div, который я хочу показать, не так ли? Так что я просто заменил бы его здесь? $ ("# solicitacoes> div: not (" + filtros + ")"). Hide(); >> $ ("# solicitacoes> div: not (" + filterList + ")"). Hide(); –
Спасибо Филиппу !!!!!!!!!!!!!! –
@ Philippe - Я дал вам точку для вашего ответа, потому что я искал решение этой проблемы в течение нескольких месяцев! Благодаря! – dac