Может ли кто-нибудь помочь мне правильно отобразить мой поиск по фильтру, а также я не могу найти свою ошибку?

#javascript #php #mysql #ajax #filter

#javascript #php #mysql #ajax #Фильтр

Вопрос:

// это мой productContent1.php файл, я хочу отобразить параметры поиска фильтра продукта, чтобы пользователи могли искать продукт с помощью фильтра.Я включил класс Product.php а затем вызовите методы для отображения значений параметров фильтра из таблицы базы данных MySQL.

 <div class="products">
<?php
include 'class/Product.php';
$product = new Product();   
?>  
    <div class="container">
        <div class="row">
                      <form class="form-inline" action=action.php" method="POST">
                 
                        <label>Type:</label>
                        <select name="Type" id="type" required>
                          <?php
                          $type = $product->gettype();
                          foreach($Type as $typeDetails){   
                          ?>
                            <optgroup label="Type" value="<?php echo $typeDetails["type"]; ?>"  >          <?php echo $typeDetails["type"]; ?>
                                <option value="">-- All --</option>
                                <option value="">-- Motorcycles --</option>
                                <option value="">-- Mini-Trucks --</option>
                                <option value="">-- Vans --</option>
                                <option value="">-- Cars --</option>
                        </select>
                        <?php
                        }
                        ?>

                        <label>Make:</label>
                        <select name="Make" id="make" required>
                          <?php
                          $make = $product->getmake();
                          foreach($Make as $makeDetails){   
                          ?>
                            <optgroup label="Make" value="<?php echo $makeDetails["make"]; ?>"  > <?php echo $makeDetails["make"]; ?>
                                <option value="">-- All --</option>
                                <option value="">-- Suzuki --</option>
                                <option value="">-- Honda --</option>
                                <option value="">-- Yamaha --</option>
                                <option value="">-- Toyota --</option>
                                <option value="">-- Nissan --</option>
                                <option value="">-- Mitsubishi --</option>
                                <option value="">-- Mazda --</option>
                        </select>
                        <?php
                        }
                        ?>

                        <label>Price:</label>
                        <select name="Price" id="price" required>
                          <?php
                          $price = $product->getprice();
                          foreach($price as $priceDetails){ 
                          ?>
                            <optgroup label="Price" value="<?php echo $priceDetails["price"]; ?>"  > <?php echo $priceDetails["price"]; ?>
                                <option value="">-- All --</option>
                                <option value="">-- 0-10000 --</option>
                                <option value="">-- 10000-50000 --</option>
                                <option value="">-- 50000-500000 --</option>
                                <option value="">-- >500000 --</option>
                        </select>
                        <?php
                        }
                        ?>

                        <label> Size:</label>
                        <select name="Size" id="size" required>
                          <?php
                          $size = $product->getsize();
                          foreach($size as $sizeDetails){   
                          ?>
                            <optgroup label="Size" value="<?php echo $sizeDetails["size"]; ?>"  > <?php echo $sizeDetails["size"]; ?>
                                <option value="">-- All --</option>
                                <option value="">-- Small --</option>
                                <option value="">-- Medium --</option>
                                <option value="">-- Large --</option>
                        </select>
                        <?php
                        }
                        ?>
                 
                        <label> Color:</label>
                        <select name="Color" id="color" required>
                          <?php
                           $color = $product->getcolor();
                          foreach($color as $ColorDetails){ 
                          ?>
                            <optgroup label="Color" value="<?php echo $colorDetails["color"]; ?>"  > <?php echo $colorDetails["color"]; ?>
                                <option value="">-- All --</option>
                                <option value="">-- Red --</option>
                                <option value="">-- Blue --</option>
                                <option value="">-- White --</option>
                                <option value="">-- Black --</option>
                                <option value="">-- Grey --</option>
                                <option value="">-- Silver --</option>
                                <option value="">-- Orange --</option>
                        </select>
                        <?php
                        }
                        ?>
                        <button type="submit" class="filled-button btn-block">Search</button>
                        </form>
<div class="col md-6">
  <div class="row">
    <div class="col-md-3">
                        <div class="product-item">
                            <a href="Toyota-Allion-Details.html"><img src="images/Toyota allion.jpg"     alt="Toyota Allion"></a>
                                <div class="card-footer">
                                    <div class="card-title"><h3>Toyota Allion</h3></div>
                                    <div class="card-price"><h3>Rs 850 000</h3></div>
                                    <p class="card-text"><small class="text-muted">Available in white only</small></p>
                                    <small>
                                        <strong title="Author"><i class="fa fa-dashboard"></i>53 000km</strong> amp;nbsp;amp;nbsp;amp;nbsp;
                                        <strong title="Author"><i class="fa fa-cube"></i>1600cc</strong>amp;nbsp;amp;nbsp;amp;nbsp;
                                        <strong title="Views"><i class="fa fa-cog"></i>Automatic</strong>
                                    </small>
                                </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="product-item">
                            <a href="Toyota-Axio-Details.html"><img src="images/Toyota axio.jpg" alt="Toyota Axio"></a>
                                <div class="card-footer">
                                    <div class="card-title"><h3>Toyota Axio</h3></div>
                                    <div class="card-price"><h3>Rs 750 000</h3></div>
                                    <p class="card-text"><small class="text-muted">Available in white only</small></p>
                                    <small>
                                        <strong title="Author"><i class="fa fa-dashboard"></i>25 453km</strong> amp;nbsp;amp;nbsp;amp;nbsp;
                                        <strong title="Author"><i class="fa fa-cube"></i>1500cc</strong>amp;nbsp;amp;nbsp;amp;nbsp;
                                        <strong title="Views"><i class="fa fa-cog"></i>Automatic</strong>
                                    </small>
                                </div>
                        </div>
                    </div>
                    
                    
    
                    <div class="col-md-12">
                        <ul class="pages">
                            <li class="active"><a href="productContent1.html">1</a></li>
                            <li><a href="productContent2.html">2</a></li>
                            <li><a href="productContent3.html">3</a></li>
                            <li><a href="productContent2.html" class="fa fa-angle-double-right"></a></li>
                        </ul>
                    </div>
                </div>
            </div>
 

//в action.phpI включен класс Product.php и вызовите метод $product->searchProducts(), чтобы получить HTML-результат поиска и передать его как ответ JSON с использованием json_encode.

 <?php
include 'class/Product.php';
$product = new Product();
if(isset($_POST["action"])){
$html = $product->searchProducts($_POST);
$data = array(
    "html"  => $html,   
);
echo json_encode($data);    
}
?>
 

//Product.php чтобы определить метод searchProducts(), чтобы получить данные поиска фильтра продукта из таблицы базы данных MySQL.Я создал запрос ВЫБОРА с параметрами поиска фильтра и получаю данные. Затем создайте результирующий HTML с данными результата и верните как полный результат поиска HTML.

 <?php
function searchProducts(){
$sqlQuery = "SELECT * FROM ".$this->productTable;
if(isset($_POST["type"])) {
    $typeFilterData = implode("','", $_POST["type"]);
    $sqlQuery .= "
    AND type IN('".$typeFilterData."')";
}
if(isset($_POST["make"])){
    $makeFilterData = implode("','", $_POST["make"]);
    $sqlQuery .= "
    AND make IN('".$makeFilterData."')";
}
if(isset($_POST["price"])) {
    $priceFilterData = implode("','", $_POST["price"]);
    $sqlQuery .= "
    AND price IN('".$priceFilterData."')";
}
if(isset($_POST["size"])) {
    $sizeFilterData = implode("','", $_POST["size"]);
    $sqlQuery .= "
    AND size IN('".$sizeFilterData."')";
 }
 if(isset($_POST["color"])) {
    $colorFilterData = implode("','", $_POST["color"]);
    $sqlQuery .= "
    AND color IN('".$colorFilterData."')";
 }
 $sqlQuery .= " ORDER By price";
 $result = mysqli_query($this->dbConnect, $sqlQuery);
 $totalResult = mysqli_num_rows($result);
 $searchResultHTML = '';
 if($totalResult > 0) {
 while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
        $searchResultHTML .= '';
    }
 }
 else {
    $searchResultHTML = '<h3>No product found.</h3>';
  }
    return $searchResultHTML;   
 }
?>
 

//search.js определить функцию filterSearch() для выполнения Ajax-запроса в соответствии с параметром поиска фильтра, отображающим результат поиска. Запрос Ajax, сделанный на action.php чтобы загрузить данные поиска из таблицы базы данных MySQL в виде ответа JSON.

 function filterSearch() {
$('.searchResult').html('<div id="loading">Loading .....</div>');
var action = 'fetch_data';
var type = getFilterData('type');
var make = getFilterData('make');
var price = getFilterData('price');
var size = getFilterData('size');
var color = getFilterData('color');
$.ajax({
    url:"action.php",
    method:"POST",
    dataType: "json",       
    data:{action:action, type:type, make:make, price:price, size:size, color:color},
    success:function(data){
        $('.searchResult').html(data.html);
    }
});
 

}

Комментарии:

1. Привет, что работает? вы получаете какую-либо ошибку?

2. Предупреждение: включить (class/Product.php ): не удалось открыть поток: нет такого файла или каталога в C:xampphtdocsproductContent1.php в строке 45 Предупреждение: включить (): Неудачное открытие ‘class/Product.php ‘ для включения (include_path=’C:xamppphpPEAR ‘) в C:xampphtdocsproductContent1.php в строке 45 @swati ошибка, которую я получаю… Фатальная ошибка: неперехваченная ошибка: класс ‘Product’ не найден в C:xampphtdocsproductContent1.php:46 Трассировка стека: #0 {main} добавлено C:xampphtdocsproductContent1.php в строке 46

3. Ошибка просто скажите, что класс в пути, который вы указали, не существует или он неправильный.