weixin_33691817 2015-09-12 12:04 采纳率: 0%
浏览 32

PHP使用GET方法添加查询

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: enter image description here

but I get:

enter image description here

Thanks

  • 写回答

1条回答 默认 最新

  • weixin_33701294 2015-09-17 06:13
    关注

    I have updated old code. please try this code You no need to a tag because you can give an action in form tag to redirect the other page.

       <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";
        }
    }
    
    </div>
    
    评论

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改