Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 23
1

Подгрузка данных

27.03.2017, 14:15. Показов 598. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть файл .php, в нём блок poems-list, в который должны грузиться данные из таблицы.
HTML5
1
2
3
4
5
<div class="poems-list" >
 
    <?php include("loader-poems.php"); ?>
 
    </div>


Есть попытка создать подобие запроса)


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php include('includes-db.php'); ?>
 
<?
 
$_SESSION['loader'] = 0;
 
$result = mysqli_query($connection, 'SELECT * FROM `stihi` LIMIT '.$_SESSION['loader'].', 1' );
 
 
$_SESSION['loader'] += 1;
 
while( ($row = mysqli_fetch_assoc($result)) ) {
 
    echo '<div class="poems-list__item">';
    echo '<h2 class="poems-title">' . $row['title'] . '</h2>';
    echo '<p class="poems-content">' . $row['text'] . '</p>';
    echo '<span class="poems-date">' . $row['date'] . '</span>';
    echo '</div>';
 
}
?>
И собственно ajax - запрос

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$(document).ready(function(){
   $(".loader").hide();  //Скрываем прелоадер
});
 //чтобы знать с какой записи вытаскивать данные
    $(function() {
       $(".loader-btn").click(function(){ //Выполняем если по кнопке кликнули
       $(".loader").show(); //Показываем прелоадер
       var num = 1;
 
       $.ajax({
              url : '../loader-poems.php',
              success: function(data){
               if(data == 0) {  // смотрим ответ от сервера и выполняем соответствующее действие
                  alert("Больше нет записей");
                  $(".loader").hide();
               } else {
                  $(".poems-list").append(data);
                  $(".loader").hide();
                  num += 1;
               }
            }
         });
 
    });
});
В конечном итоге получаю, что загружается одна и та же запись...

вот сам сайт
http://paqura616.h1n.ru/mypoems.php
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2017, 14:15
Ответы с готовыми решениями:

Подгрузка данных из базы mysql с последующей генерацией html и подстановкой извлеченных данных
на сайте есть форма подачи заявки. после подачи , на главной странице должно отображаться фото и...

Подгрузка данных
Здравствуйте. Подскажите самый просто вариант для подгрузки данных, в моем случае 3х новостей. Вот...

Подгрузка данных из бд
Добрый день. Мне нужно, чтобы при нажатии на кнопку подгружалось еще 10 строк в таблицу Бьюсь...

Подгрузка данных AJAX и перезагрузка страницы
Здравствуйте, уважаемые форумчане! Целый день не могу решить одну проблему. У меня есть два...

8
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
27.03.2017, 14:36 2
Цитата Сообщение от slavaavals Посмотреть сообщение
В конечном итоге получаю, что загружается одна и та же запись
Из-за того, что Вы каждый раз сбрасываете значение loader в сессии на ноль:
PHP
1
$_SESSION['loader'] = 0;
Сделайте условие, чтобы она устанавливалась только если не существует.
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 23
27.03.2017, 14:46  [ТС] 3
PHP
1
2
3
4
5
6
7
if ( !mysqli_num_rows($result) ) {
 
    if ( $_SESSION['loader'] == 0 ) exit('empty');
    else exit('end');
 
    exit;
}
Так? Но в любом случает грузит тот же блок
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
27.03.2017, 14:54 4
Вот так:
PHP
1
2
3
if (!isset($_SESSION['loader'])) {
    $_SESSION['loader'] = 0;
}
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 23
27.03.2017, 14:58  [ТС] 5
Видимо, проблема не в этом
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
27.03.2017, 15:34 6
Нет, в этом тоже. Сразу не обратил внимания -- у Вас сессия не запущена. И, поскольку ajax-запрос идёт напрямую к скрипту loader-poems.php, а он подключается ещё и в другом скрипте, запустить корректно не получится из-за вывода:
HTML5
1
<div class="poems-list" >
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 23
27.03.2017, 15:44  [ТС] 7
То есть мне нужно это всё положить в один файл?
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
27.03.2017, 16:00 8
Не надо в один. Создаёте ещё файл, к которому будете делать запрос через ajax, в нём запускайте сессию подключайте файл loader-poems.php.
Также запускайте при обычном запросе (не через ajax).
0
0 / 0 / 0
Регистрация: 16.12.2016
Сообщений: 23
27.03.2017, 18:51  [ТС] 9
Три файла, чтобы заработал один... Я что-то не понимаю.

допустим, первый mypoems.php - это разметка, где будет вставляться:

HTML5
1
2
3
4
5
<div class="poems-list" >
 
        <?php include 'loader-poems.php';  ?>
 
</div>
отдельный файл loader-poems.php , где содержится:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php include('includes-db.php'); ?>
 
 
<?php
 
if (!isset($_SESSION['loader'])) {
    $_SESSION['loader'] = 0;
}
 
$result = mysqli_query($connection, 'SELECT * FROM `stihi` LIMIT '.$_SESSION['loader'].', 1' );
 
$_SESSION['loader'] += 1;
 
while( ($row = mysqli_fetch_assoc($result)) ) {
 
    echo '<div class="poems-list__item">';
    echo '<h2 class="poems-title">' . $row['title'] . '</h2>';
    echo '<p class="poems-content">' . $row['text'] . '</p>';
    echo '<span class="poems-date">' . $row['date'] . '</span>';
    echo '</div>';
 
}
?>
Третий файл, например, loader.php с вот этим:

PHP
1
2
3
4
5
6
7
<?php
 
session_start();
 
include 'loader-poems.php';
 
?>
и, собственно аякс

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$(document).ready(function(){
   $(".loader").hide();  //Скрываем прелоадер
});
 //чтобы знать с какой записи вытаскивать данные
    $(function() {
       $(".loader-btn").click(function(){ //Выполняем если по кнопке кликнули
       $(".loader").show(); //Показываем прелоадер
 
       $.ajax({
              url : '../loader.php',
 
              success: function(response){
               if(response == 0) {  // смотрим ответ от сервера и выполняем соответствующее действие
                  alert("Конец");
                  $(".loader").hide();
               } else {
                  $(".poems-list").append(response);
                  $(".loader").hide();
                  alert('Загрузилось');
               }
 
            }
         });
 
    });
});
что не так?
0
27.03.2017, 18:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2017, 18:51
Помогаю со студенческими работами здесь

Подгрузка из базы данных (MySQL) на PHP с использованием AJAX
Есть база данных в которой храняться фотографии, название и описание к ним. Сначала выводиться 9...

Подгрузка файлов
Есть страница index.php в нее подгружается файл: &lt;?php...

Подгрузка шаблона
Трабл не пойму в чём, вроде как всё верно но абсолютно ничего не подгружается Структура:...

Подгрузка контента
здравствуйте, хотелось прояснить пару моментов в данной теме вот у меня есть код для подгрузки...

Подгрузка инклюдов
Читал документацию по php, там была функция __autoload() использовалась вроде для классов, что бы...

Подгрузка аватара пользователя
Добрый день. Подскажите пожалуйста как вывести фото пользователя в его личный кабинет. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru