Здравствуйте! Есть такой фильтр на js. Он выбирает статьи по определенным параметрам.
<select id="flat">
<?php $filterflat = get_filterflat(); ?>
<?php foreach ($filterflat as $post): ?>
<option value="<?=$post["id"]?>"><?=$post["rooms"]?></option>
<?php endforeach; ?>
</select>
<select id="metro">
<?php $filtermetro = get_filtermetro(); ?>
<?php foreach ($filtermetro as $post): ?>
<option value="<?=$post["stationid"]?>"><?=$post["station"]?></option>
<!-- <option value="taganka">Таганская</option>
<option value="kurskay">Курская</option>
<option value="poveleckay">Повелецкая</option> -->
<?php endforeach; ?>
</select>
<?php $posts = get_posts(); ?>
<?php foreach ($posts as $post): ?>
<div id="items">
<div class="item" data-color="<?=$post["id"]?>" data-shape="<?=$post["stationid"]?>">
<div class="infoFlat">
<h3> <?=$post["titleflat"]?> </h3>
<h3><?=$post["titlemetro"]?></h3>
<h3><?=$post["price"]?>.</h3>
<p class="b1"><?=$post["date"]?></p>
</div>
<div class="itemText">
<p><?=$post["text"]?></p>
</div>
</div>
</div>
<?php endforeach; ?>
Сейчас он выводит посты из БД. мне нужно чтобы он фильтровал их вытаскивая так же из БД.
Скрипт фильтра
var flat = document.getElementById('flat');
var metro = document.getElementById('metro');
var items_el = document.getElementById('items');
var filter = function() {
var items = items_el.getElementsByClassName('item');
for (var i = 0; i < items.length; i++) {
if ((flat.value == 'all' || flat.value == items[i].dataset.color) &&
(metro.value == 'all' || metro.value == items[i].dataset.shape)) {
items[i].style.display = 'block';
} else {
items[i].style.display = 'none';
}
}
};
flat.addEventListener("change", filter);
metro.addEventListener("change", filter);
function.php
function get_posts() {
global $connection;
$sql = " SELECT * FROM orders_posts ORDER BY rand()";
$result = mysqli_query($connection, $sql);
$posts = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $posts;
}
function get_filterflat() {
global $connection;
$sql = "SELECT * FROM filterflat";
$result = mysqli_query($connection, $sql);
$filterflat = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $filterflat;
}
function get_filtermetro() {
global $connection;
$sql = "SELECT * FROM filtermetro";
$result = mysqli_query($connection, $sql);
$filtermetro = mysqli_fetch_all($result, MYSQLI_ASSOC);
return $filtermetro;
}
function get_allFilters() {
global $connection;
$sql = "SELECT filterflat.id, filtermetro.stationid, : orders_posts.id FROM filterflatINNER JOIN filtermetro ON filterflat.id=filtermetro.stationid";
}
filterflat - таблица , в которой содержится столбцы id , rooms;
filtermetro - таблица , в которой содержится столбцы stationid , station;
orders_posts - таблица , в которой содержится столбцы id, titlemetro, titleflat, price, text, date;
Первый критерий станции метро. К примеру (БУЛЬВАР РОКОССОВСКОГО или ПРЕОБРАЖЕНСКАЯ ПЛОЩАДЬ)
Второй критерий кол.комнат в квартире. К примеру (1-к квартира или 2-к квартира.)
подскажите пожалуйста, как это реализовать?????