PHP使用GET方法添加查询

时间:2015-09-12 12:04:07

标签: javascript php html mysql ajax

我使用可以按价格对产品进行分类的产品制作网站。所以,首先我搜索产品并显示结果:

    <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);
    }
}

第二个不起作用,我试图进行排序,当我按下按钮从产品用户输入的最高价格的最低价格按价格对产品进行分类,所以我应该得到这样的东西: enter image description here

但我明白了:

enter image description here

由于

1 个答案:

答案 0 :(得分:1)

我更新了旧代码。请尝试此代码 您不需要标记,因为您可以在表单标记中提供操作以重定向其他页面。

   <form action="search_site.php" method="get" id="testing_form">                     
<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>                                            
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>

<?php
error_reporting(0);
$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 = $_GET['search'];
    $category = $_GET['category'];
}
$sql = '';
if(isset($_GET['sort'])){

    if ($_GET['sort'] == 'asc'){

        $sql = " ORDER BY price ASC";
    }elseif ($_GET['sort'] == 'desc'){

        $sql = " ORDER BY price DESC";
    }
}