У меня есть страница со списком панелей обрушения Bootstrap. Я создаю эти панели динамически первый запрос к базе данных для контента, см код ниже:Фильтр на панелях коллапсирования ботстрапа
<div class="panel-group" id="accordion">
<?php
$all_emails = "SELECT * FROM sent_emails";
if($result = mysqli_query($link, $all_emails)) {
while($rows = $result->fetch_object()) {
$db = $rows->timestamp;
$timestamp = strtotime($db);
echo '
<div class="panel panel-default m'.date("m", $timestamp).'">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse'.$rows->ai.'">
#'.$rows->ai.' | Sent to: '.$rows->mail_to.' | Subject: '.$rows->mail_subject.' <span class="pull-right">| '.$rows->timestamp.' </span>
</a>
</h4>
</div>
<div id="collapse'.$rows->ai.'" class="panel-collapse collapse">
<div class="panel-body">
'.$rows->mail_message.'
</div>
</div>
</div>
';
}
mysqli_free_result($result);
}
?>
</div>
Это прекрасно работает и все, но то, что я хочу, чтобы выполнить следующий добавляет фильтр, который только показать панели с определенным класс в нем. Как вы можете видеть в приведенном выше коде, я создаю divs с классами «panel panel-default m (« month »), все из которых имеют родительский div, называемый« panel-group ».
Когда я выбираю месяц из выпадающего списка кнопка, как показано ниже, я беру значение/идентификатор месяца в Jquery в качестве входных данных для фильтра.
<div class="dropdown1">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">
Select month
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1" id="select1">
<li value="january" id="m1" role="presentation"><a href="#">January</a></li>
<li value="february" id="m2" role="presentation"><a href="#">February</a></li>
<li value="march" id="m3" role="presentation"><a href="#">March</a></li>
<li value="april" id="m4" role="presentation"><a href="#">April</a></li>
<li value="may" id="m5" role="presentation"><a href="#">May</a></li>
<li value="june" id="m6" role="presentation"><a href="#">June</a></li>
<li value="july" id="m7" role="presentation"><a href="#">July</a></li>
<li value="august" id="m8" role="presentation"><a href="#">August</a></li>
<li value="september" id="m9" role="presentation"><a href="#">September</a></li>
<li value="october" id="m10" role="presentation"><a href="#">October</a></li>
<li value="november" id="m11" role="presentation"><a href="#">November</a></li>
<li value="december" id="m12" role="presentation"><a href="#">December</a></li>
</ul>
</div><!--/.dropdown1 -->
до сих пор у меня есть следующий код JQuery. Каждый ребенок ДИВ из «панели-группы», что Безразлично» т. е. класс m10 (= октябрь) должен быть скрыт.
<script>
$(function(){
$("#select1").on('click', 'li', function(){
$("#dropdownMenu1").text($(this).text());
$("#dropdownMenu1").val($(this).text());
$(".panel-group").show();
$(".panel-group .panel.panel-default :not(."+this.id+")").hide();
});
});
Я пробовал много и искал по всему интернету для ответа, который удовлетворяет то, что мне нужно, но не везло до сих пор :(
Я думаю, что вы имели в виду .Show() с последнее утверждение? К сожалению, это не делает этого. Странно, потому что это должно работать правильно? – Beeelze
@MarijnvanGool Также была другая опечатка (.panel1 insead of .panel). Попробуйте это - он должен работать нормально – Steve
$ (". Panel-group .panel.panel-default"). Hide(); \t \t \t $ (". Panel-group .panel.panel-default." + This.id) .show(); <- это сделало трюк однако! – Beeelze