I making site with products where I can sort my products by price. So, first I search product and display result:
<form action="" method="GET">
<input type="text" name="search" id="search"/>
<select name="category" id="category_search">
<option value="default">Pretraži po kategorijama</option>
<option value="torbe">Torbe</option>
<option value="tv">Tv</option>
<option value="udzbenici">Udžbenici</option>
<option value="vrtna_garnitura">Vrtna garnitura</option>
<option value="vrtna_oprema">Vrtna oprema</option>
<option value="zemljiste">Zemljište</option>
<option value="zvucnici/slusalice">Zvučnici/slušalice</option>
</select>
<input class="myButton" type="submit" value="pretraži"/>
</form>
if(isset($_GET['search'])){
$search = sanitize($_GET['search']);
$cat = sanitize($_GET['category']);
if(!empty($search)){
$search_query = mysql_query("SELECT * FROM products WHERE `product_name` LIKE '%$search%' OR `category` LIKE '%$cat%'".$sql_price.' '.$sql);
while ($results_row = mysql_fetch_assoc($search_query)){
echo '<div class="product"><a href="product.php?id='.$results_row['id'].'"><img style="border:1px solid black;" src="'.$results_row['img_path'].'/'.$results_row['img_name'].'" width="230px" height="230px"/></a><br><div class="br"></div><strong>'.$results_row['product_name'].'</strong><br>Cijena: '.$results_row['price'].'kn</div>';
}
}
}
Then I made two options of sorting products first:
<?php echo '<a href="search_site.php?search='.$_GET['search'].'&category='.$_GET['category'].'&sort=asc">Niža prema višoj</a>';?>
<?php echo '<a href="search_site.php?search='.$_GET['search'].'&category='.$_GET['category'].'&sort=desc">Viša prema nižoj</a>';?>
$sql = '';
if(isset($_GET['sort'])){
if ($_GET['sort'] == 'asc'){
$sql = " ORDER BY price ASC";
}elseif ($_GET['sort'] == 'desc'){
$sql = " ORDER BY price DESC";
}
}
And second:
<form method="get" id="price_form">
Od <input type="number" class="price_input" name="min_price" id="min_price" placeholder="kn"/> do
<input type="number" class="price_input" name="max_price" id="max_price" placeholder="kn"/>
<button name="price_submit" id="price_submit">Kreni</button>
</form>
<script>
document.getElementById('price_submit').addEventListener('click', function(e){
e.preventDefault();
var search = <?php echo json_encode($_GET['search']); ?>;
var category = <?php echo json_encode($_GET['category']); ?>;
var min_price = document.getElementById('min_price');
var max_price = document.getElementById('max_price');
$.ajax({
type: "GET",
url: "search_site.php?search="+search+"&category="+category+"&min_price="+min_price+"&max_price="+max_price
});
});
</script>
$sql_price = '';
if(isset($_GET['price_submit'])){
$min_price = sanitize($_GET['min_price']);
$min_price = (int)$min_price;
$max_price = sanitize($_GET['max_price']);
$max_price = (int)$max_price;
if($min_price == ''){
$errors[] = 'Minimalna cijena mora biti ispunjena';
}elseif($max_price == ''){
$errors[] = 'Maksimalna cijena mora biti ispunjena';
}elseif($min_price < 0){
$errors[]= 'Minimalna cijena ne smije biti manja od 0kn';
}elseif($max_price < 0){
$errors[] = 'Maksimalna cijena ne smije biti manja od 0kn';
}elseif($min_price > $max_price){
$errors[] = 'Minimalna cijena ne smije biti veća od maksimalne';
}
if(empty($errors)){
$sql_price = 'BETWEEN '.$min_price.' AND '.$max_price;
}else{
echo output_errors($errors);
}
}
Second one don't work, I tried to make sort, when I press buttont to sort product by price from min price what user inputted to max price what user inputted, so I should get something like this:
but I get:
Thanks