Если кто-то когда-то тоже был эта проблема именно так я и сделал.
Так что есть profile.php, который содержит и показывает загруженные фотографии. Я хочу использовать кнопку, которая увеличивает LIMIT в sql. Таким образом, profile.php содержит все. Существует div, который содержит результаты запроса wit-изображений и после того, как у него есть кнопка загрузки больше. Это выглядит следующим образом:
<div class="row mg-bt-20" id="cont">
<?php
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo " <div class='col-md-4 col-sm-6 mg-bt-20'>
<div class='pics' data-toggle='modal' data-id='".$row['id']."' data-target='#myModal'>
<img src='" . $row['path'] . "'>
<p class='text-center' style='line-height: 6vh;'>". $row["description"] ."</p>
</div>
</div>";
}
} else {
echo "<p style='text-align: center; color:#fff; font-size: 20px;'>No posts yet.</p>";
}
?>
</div>
Проблема заключалась в попытке отправить переменную этого profile.php, но это не работает. Я пробовал все, но он просто не работает. Так что я сделал новый PHP файл с именем show_more.php, который содержит только результаты запроса из PHP кода выше:
<?php
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo " <div class='col-md-4 col-sm-6 mg-bt-20'>
<div class='pics' data-toggle='modal' data-id='".$row['id']."' data-target='#myModal'>
<img src='" . $row['path'] . "'>
<p class='text-center' style='line-height: 6vh;'>". $row["description"] ."</p>
</div>
</div>";
}
} else {
echo "<p style='text-align: center; color:#fff; font-size: 20px;'>No posts yet.</p>";
}
?>
Так что мой JQuery код:
var smbt = $(".smbt");
var limit = $(smbt).data('loaded');
smbt.on('click',function(event) {
event.preventDefault();
limit += 3;
console.log(limit);
// alert(loaded + " picture");
$.ajax({
url:"../php/show_more.php",
data: {limit1: limit},
success:function(data){
$("#cont").html(data);
}
});
Это успешно отправить предел1 переменную к show_more.php.
В show_more.php Я просто пишу $_POST["limit1"]
, чтобы получить данные.
И SQL-запрос выглядит следующим образом:
$sql = "SELECT * FROM images where user = '$username' ORDER BY id DESC LIMIT $limit";
Так вот как это работа:
Прежде всего, когда profile.php подгружались картина показывает, если у вас есть один, но его ограниченный только показанным только 3. Поэтому после того, как вы нажмете кнопку «Загрузить больше», он запускает код ajax, который увеличивает предельную переменную с 3, поэтому мы получаем новый номер, который теперь равен 6 (я всегда увеличиваю с 3). Код ajax сначала отправляет данные на указанный URL-адрес, который является show_more.php в этом случае. Я пишу его в oop, поэтому у меня есть класс, который обрабатывает всю вещь изображения, и у меня есть функция, в которой отображаются изображения, поэтому я просто передаю в ней переменную вроде этого public function showImg($limit){...}
. Итак, вот где происходит волшебство. Когда я нажимаю, он всегда меняет лимит. после того, как это произошло в коде ajax, часть успеха обрабатывает результат. Результатом будет html-код, который будет добавлен в контейнер изображения.
Надеюсь, я помогу с этим, и я не писал глупых вещей (также извините за мой английский). Это работает для меня в этой форме.
И спасибо всем, чья помощь.
У вас должно быть хорошо. Проверьте консоль на наличие ошибок в вашем JS-коде. Также обратите внимание, что при создании собственных свойств (т. Е. 'Loaded') неверен HTML. Вы должны использовать атрибуты 'data- *' для хранения ваших собственных метаданных в элементе, хотя это не повлияет на AJAX, который вы используете здесь. –
Попробуйте изменить 'data: ({limit1: limit}),' to 'data: {limit1: limit},' – CGriffin
Я попытался использовать загруженные данные, а также попытался изменить ({limit1: limit}) на данные : {limit1: limit}, но все равно получите ошибку :( –