【发布时间】:2015-12-08 21:44:54
【问题描述】:
我用产品制作网站,我可以在其中按价格对产品进行分类。所以,首先我搜索产品并显示结果:
<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>';
}
}
}
然后我先做了两个排序产品的选项:
<?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";
}
}
第二个:
<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);
}
}
第二个不起作用,我尝试进行排序,当我按下按钮按价格对产品进行排序时,从用户输入的最低价格到用户输入的最高价格,所以我应该得到这样的结果:
但我明白了:
谢谢
【问题讨论】:
-
search="+search"&category在&category之前应该有+ -
@u_mulder 还是一无所有...
-
var search = <?php echo json_encode($_GET['search']); ?>; -
那不应该是js字符串?
-
var search = '<?php echo json_encode($_GET['search']); ?>';
标签: javascript php html mysql ajax