2014-09-23 2 views
-1

У меня есть база данных MySQL, использующая PHP, издает следующий HTML-код.Использование флажков для фильтрации данных

<div class="item filterable united-states" data-amount="14000"> 
    Supplier Country: United States 
    Delivery Estimation: 5 days 
    Quote Amount: 14000 
<div> 

<div class="item filterable united-states" data-amount="7000"> 
    Supplier Country: United States 
    Delivery Estimation: 30 days 
    Quote Amount: 7000 
<div> 

<div class="item filterable united-kingdom" data-amount="13000"> 
    Supplier Country: United Kingdom 
    Delivery Estimation: 15 days 
    Quote Amount: 13000 
<div> 

<div class="item filterable germany" data-amount="8700"> 
    Supplier Country: Germany 
    Delivery Estimation: 22 days 
    Quote Amount: 8700 
<div> 

Я также создал цикл, который создает флажки на основе стран в результирующем наборе. HTML, для этого выглядит следующим образом:

<div class="checkbox check-default" id="country-filter"> 
    <strong>Countries</strong><br> 

    <input type="checkbox" value="germany" id="germany-checkbox" /> 
    <label for="germany-checkbox">Germany</label> 

    <input type="checkbox" value="united-kingdom" id="united-kingdom-checkbox" /> 
    <label for="united-kingdom-checkbox">United Kingdom</label> 

    <input type="checkbox" value="united-states" id="united-states-checkbox" /> 
    <label for="united-states-checkbox">United States</label> 
</div> 

Так что я нашел JQuery фрагмент и редактировать его для фильтрации результатов, как это:

$("#country-filter :checkbox").click(function() { 
$("div.item").hide(); 
$("#country-filter :checkbox:checked").each(function() { 
$("div." + $(this).val()).show().slideDown(400); 
}); 
}); 

Сниппет JQuery помогает отфильтровать результаты, но не в Я хочу это сделать. Результаты загружаются очень хорошо, и когда флажок установлен, он получает результаты, которые должны отображаться просто отлично. Но когда все флажки не отмечены, все результаты исчезают до тех пор, пока не будет установлен флажок.

Кроме того, я хочу, чтобы другой фильтр обрабатывал количество, работающее в тандеме с фильтром страны.

Как это сделать?

ответ

0

Для первого вопроса, то заменить вашу $("div.item").hide(); с

if ($("#country-filter :checkbox:checked").length > 0) 
{ 
    $("div.item").hide(); 
} 
else 
{ 
    $("div.item").show(); 
} 

для других, созданного переменных (JavaScript или JQuery) и установите его в 0, прежде чем идти в ваш каждом цикл. Возьмите и добавьте содержимое параметра количества данных из каждого из отображаемых вами разделов. Как только вы закончите, у вас будет переменная с общим количеством в ней

+0

все еще не решила проблему. Если флажок не выбран, все результаты исчезнут. – user3754923

+0

моя ошибка. Забыл включить «: checked». Попробуйте эту версию. –

+0

Это сработало красиво. Есть ли у вас какие-либо идеи относительно того, как идти по другому? – user3754923

Смежные вопросы