php, java script Кнопка загрузить еще
В начале я делал пагинацю но бросил это дело, решил делать Кнопку загрузить еще. пагинацию я решил не делать а сделал копку показать больше авто.
Изменил основной код вывода авто
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once('../admin-aj/conn/connectvars.php');
$name = $_GET['id'];
$model = isset($_GET['model']) ? $_GET['model'] : '';
$n = isset($_GET['n']) ? $_GET['n'] + 1 : 0;
$query = "SELECT * FROM `blog` WHERE `make` = '$name' AND `is_active` = '1' AND `is_na_market` = '1'";
if ($model !== '') {
$query .= " AND `model` = '$model'";
}
$query .= " ORDER BY id DESC LIMIT $n,21";
$get_query = mysqli_query($connection, $query);
$num_gars = mysqli_num_rows($get_query);
if ($num_gars > 0) {
while ($get_list = mysqli_fetch_array($get_query)) {
?>
<div class="col-md-4 col-sm-6 kolbasa">
<a href="product-details.php?id=<?php echo $get_list['id'];?>&cate=<?php echo $get_list['title'];?>">
<div class="thumbnail2"><img src="https://www.cyberforum.ru/images/upload/<?php echo $get_list['image']?>" alt=""/></div>
<div class="kolbasa-title price"><h4><?php echo $get_list['title']?></h4></div>
<!-- <p><?php echo substr($get_list['remarks'], 0, 100) .((strlen($row['remarks']) > 200) ? '...' : ''); ?> </p> -->
<div>
<div class="price1">$<?php echo $get_list['price']?><span style="float:right;font-size:small">FOB Japan</span></div>
<div class="price2">¥<?php echo $get_list['price_jpy']?></div>
</div>
<hr class="line">
<div class="col-md-12 col-sm-12">
<div class="desc"><?php echo $get_list['year_of_reg']?>
<span style="float:right;"><?php echo $get_list['kms']?></span></div>
</div>
</a>
</div>
<?php
}
}
echo "<input type='hidden' class='gars' value='$num_gars'>";
if ($num_gars >= 10) {
?>
<div class="text-center">
<button class="btn btn-outline-primary" id="load-more-btn" data-next-page="<?php echo $n + 10 ?>" data-make="<?php echo $name ?>" data-model="<?php echo $model ?>">Load more</button>
</div>
<?php
}
?>
Потом дописал скрипт
$(document).ready(function () {
var n = <?php echo $n ?>;
var per_page = 21;
var name = "<?php echo $name ?>";
var model = "<?php echo $model ?>";
$("#load-more-btn").on("click", function () {
var next_page = $(this).data("next-page");
var make = $(this).data("make");
var model = $(this).data("model");
$.ajax({
url: "load_next_cars.php",
type: "GET",
data: {
n: next_page,
id: make,
model: model
},
success: function (response) {
$("#car-infinite-list").append(response);
n += per_page;
$("#load-more-btn").data("next-page", n);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
});
});
И далее сделал отдельный файл load_more_car.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
var_dump($_GET);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once('../admin-aj/conn/connectvars.php');
$name=$_GET['id'];
$model=$_GET['model'];
$n=$_GET['n']+1;
$query="SELECT * FROM `blog` where `make` = '$name' AND `is_active`='1' AND `is_na_market`='1' AND `model`='$model' order by id desc limit $n,21";
$get_query = mysqli_query($connection,$query);
$num_gars = $get_query->num_rows;
if ($num_gars > 0) {
while($get_list=mysqli_fetch_array($get_query))
{
?>
<div class="col-md-4 col-sm-6 kolbasa">
<a href="product-details.php?id=<?php echo $get_list['id'];?>&cate=<?php echo $get_list['title'];?>">
<div class="thumbnail2"><img src="https://www.cyberforum.ru/images/upload/<?php echo $get_list['image']?>" alt=""/></div>
<div class="kolbasa-title price"><h4><?php echo $get_list['title']?></h4></div>
<!-- <p><?php echo substr($get_list['remarks'], 0, 100) .((strlen($row['remarks']) > 200) ? '...' : ''); ?> </p> -->
<div>
<div class="price1">$<?php echo $get_list['price']?><span style="float:right;font-size:small">FOB Japan</span></div>
<div class="price2">¥<?php echo $get_list['price_jpy']?></div>
</div>
<hr class="line">
<div class="col-md-12 col-sm-12">
<div class="desc"><?php echo $get_list['year_of_reg']?>
<span style="float:right;"><?php echo $get_list['kms']?></span></div>
</div>
</a>
</div>
<?php }
}
echo "<input type='hidden' class='gars' value='$num_gars'>";
?>
еще сортировку настроил , примечание сортировка стоит у меня до вывода авто.
<form action="" method="get">
<div class="row">
<div class="form-group">
<div class="col-md-1 col-xs-3 pull-right">
<input type="submit" class="form-control" value="Sort">
<input type="hidden" name="id" value="<?php echo $name; ?>">
</div>
<div class="pull-right">
<select name="model" id="selUser1" placeholder="Sort by model" class="form-control" required style="margin:10px 0px;">
<option value="">Sort by model</option>
<?php
// Construct the query to retrieve the unique 'model' values for the specified 'name' value
$query = "SELECT DISTINCT model FROM blog WHERE make='$name' ORDER BY model";
$get_query = mysqli_query($connection, $query);
while ($info = mysqli_fetch_array($get_query)) {
// Output an <option> element for each unique model value
$selected = ($info['model'] === $model) ? 'selected' : ''; // If this is the current model value, mark it as selected
echo '<option value="' . $info['model'] . '" ' . $selected . '>' . $info['model'] . '</option>';
}
?>
</select>
</div>
</div>
</div>
</form>
В итоге кнопка работает и автомобили загружаются только когда сортировал например Nissan skyline. + настроил отладчик в visual studio code и в xammp
он пишет это при загрузки не отсортированых машин
C:\xampp\htdocs\en\load_next_cars.php:5:
array (size=3)
'n' => string '10' (length=2)
'id' => string 'Nissan' (length=6)
'model' => string '' (length=0)
Когда же загружаю уже отсортированные авто то все работает идеально. Если есть идеи подскажите пожалуйста. Спасибо.
UPD я тут несного посидел , возможно моя проблема в файле
load_next_cars.phph
Вот так я его изменил
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once('../admin-aj/conn/connectvars.php');
$name = $_GET['id'];
$n = $_GET['n'] + 1;
// check if model is specified
if (isset($_GET['model'])) {
$model = $_GET['model'];
$query = "SELECT * FROM `blog` WHERE `make` = '$name' AND `model`='$model' AND `is_active`='1' AND `is_na_market`='1' ORDER BY id DESC LIMIT $n,21";
} else {
$query = "SELECT * FROM `blog` WHERE `make` = '$name' AND `is_active`='1' AND `is_na_market`='1' ORDER BY id DESC LIMIT $n,21";
}
$get_query = mysqli_query($connection, $query);
$num_gars = $get_query->num_rows;
if ($num_gars > 0) {
while ($get_list = mysqli_fetch_array($get_query)) {
?>
<div class="col-md-4 col-sm-6 kolbasa">
<a href="product-details.php?id=<?php echo $get_list['id'];?>&cate=<?php echo $get_list['title'];?>">
<div class="thumbnail2"><img src="../images/upload/<?php echo $get_list['image']?>" alt=""/></div>
<div class="kolbasa-title price"><h4><?php echo $get_list['title']?></h4></div>
<div>
<div class="price1">$<?php echo $get_list['price']?><span style="float:right;font-size:small">FOB Japan</span></div>
<div class="price2">¥<?php echo $get_list['price_jpy']?></div>
</div>
<hr class="line">
<div class="col-md-12 col-sm-12">
<div class="desc"><?php echo $get_list['year_of_reg']?>
<span style="float:right;"><?php echo $get_list['kms']?></span></div>
</div>
</a>
</div>
<?php
}
}
echo "<input type='hidden' class='gars' value='$num_gars'>";
?>
UPD 2 увидел ответ на свой вопрос только сейчас. Отпишусь какие получились результаты.