Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
eastsida
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
1

Автообновление страницы на ajax и разделение на страницы php

31.10.2015, 15:53. Просмотров 1446. Ответов 10
Метки нет (Все метки)

Добрый день, вот столкнулся с такой задачей, есть у меня автообновляемая страница на ajax которая обновляется раз в минуту получая данные из бд. Так вот из-за того, что таблица с данными разрастается очень быстро, я решил разделить данные по 10 строк таблицы на одну страницу. Реально ли как-нибудь сделать так, чтобы перейти на вторую страницу, допустим, и обновлять через каждую минуту уже её, ну и т.д. ? То есть на какую страницу я перешел та и будет обновляться.
Refresh.php
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
        function show()
        {
            $.ajax({
                url: "Stats.php", // загружает вот это страницу каждую минуту
                cache: false,
                success: function(html){
                    $("#content").html(html);
                }
            });
        }
    
        $(document).ready(function(){
            show();
            setInterval('show()',6000*10);
        });
    </script>
Stats.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
////////// Деление на страницы ////////////////////////////////////////////////////////////
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * 10;
$result = mysqli_query( $link, "SELECT * FROM `stats` WHERE `id` ='$id' LIMIT $start_from, 10");
$posts = mysqli_query($link,"SELECT * FROM 'stats' WHERE `id` = '$id'");
$num_rows = mysqli_num_rows( $posts );
$total_records = $num_rows;
$total_pages = ceil($total_records / 10);
for ($i=1; $i<=$total_pages; $i++) 
{
echo "<a href='Stats.php?page=".$i."'>".$i."</a> "; // формирование ссылок тут <-----------
};
////////// Деление на страницы ////////////////////////////////////////////////////////////
//------------------там ниже таблица с данными----------------------------//
То есть в теории я со страницы где автообновление контента refresh.php должен передать параметр на страницу Stats.php ?page=номер страницы и обновлять постоянно уже тот номер страницы который был передан в параметрах, только вот как это сделать...
Если кто поможет заранее благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 15:53
Ответы с готовыми решениями:

AJAX - как сделать запрос к PHP-коду без перезагрузки страницы
Эта тема имеет больше общего с JavaScript, но ввиду того, как часто у новичков...

Как сделать мультизагрузку фото с ajax и php без перезагрузки страницы?
или хотя бы как можно как можно отправить данные массива name='image' в файл...

Автообновление страницы с сервера
Доброго времени! Задача в следующем: Есть примитивный &quot;чат&quot;. Один человек...

Не работают некоторые запросы в БД из PHP через AJAX с HTML страницы
Делаю сайт отеля, где есть возможность сложного поиска по номерам отеля,...

Пример простейшего калькулятора на PHP без перезагрузки страницы (чистый Ajax, без jQuery и других библиотек)
Привет. Это, в каком-то смысле, продолжение креатива...

10
kester
216 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 615
31.10.2015, 23:32 2
ну вроде бы логично в ajax-е:
Javascript
1
url: "Stats.php?page=номер",
0
eastsida
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
02.11.2015, 20:56  [ТС] 3
Цитата Сообщение от kester Посмотреть сообщение
ну вроде бы логично в ajax-е:
оно то логично, но естественно я попробовал
и так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>
        function show()
        {
            $.ajax({
                type: "GET",  
                url: "table.php",
                data:"page=2",
                cache: false,
                success: function(html){
                    $("#content").html(html);
                }
            });
        }
    
        $(document).ready(function(){
            show();
            setInterval('show()',3000);
        });
    </script>
и так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
        function show()
        {
            $.ajax({
                url: "table.php?page=2",
                cache: false,
                success: function(html){
                    $("#content").html(html);
                }
            });
        }
    
        $(document).ready(function(){
            show();
            setInterval('show()',3000);
        });
    </script>
И почему-то продолжает загружать опять просто первую страницу, только после того как нажму ф5 и вручную обновлю саму страницу только после обновления оно показывает вторую страницу. И опять же вторая проблема мне нужно переменную номер страницы как-то сделать доступными на 2 файла там где я обновляю на аяксе и в пхп файле где данные формируются, я же из воздуха номер страницы взять не могу.
0
kester
216 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 615
04.11.2015, 22:40 4
В браузере на этой странице нажми F12, выбери "сеть", посмотри какие запросы уходят на сервер. Узнаешь, правильно ли срабатывает аджакс.
1
eastsida
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
04.11.2015, 22:46  [ТС] 5
Действительно к запросу добавляет какой-то номер-счетчик. Теперь вопрос в том, что это и как от него избавиться. Ну и конечно как хранить переменную страницы для обновления на 2 файла.
Автообновление страницы на ajax и разделение на страницы php
0
kester
216 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 615
04.11.2015, 23:18 6
Ну пейдж передаётся, а значит и скрипт должен правильно срабатывать.
Что за счётчик хз, не знаком с такими. В обычном jquery такого нет. Значит либо плагины, либо вредоносный код(что было бы странно).
А не срабатывает пхп. Посмотри вар_дамп гет-массива.
проверь, совпадают ли переменные page в пхп и в аджаксе: возможно в одном из них есть русская буква.
0
eastsida
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
04.11.2015, 23:30  [ТС] 7
Цитата Сообщение от kester Посмотреть сообщение
Ну пейдж передаётся, а значит и скрипт должен правильно срабатывать.
Что за счётчик хз, не знаком с такими. В обычном jquery такого нет. Значит либо плагины, либо вредоносный код(что было бы странно).
А что есть не обычный jquery ?) JS скачан с офф сайта и собственно подключен в тегах <head>. Плагинов никаких нет и вредоносного кода тем-более. Я вот думаю может я туплю, я же номер страницы меняю в файле и сохраняю, с php я думаю это работало по той причине, что я перезагружал страницу вручную, чтобы увидеть изменения. На аяксе я так понял оно просто параметр новый не принимает поскольку сам скрипт уже загружен и запущен с теми параметрами которые были в файле до изменений и соответственно то, что я менял там page=2, page=1 и ничего не происходило скорее всего из-за того, что скрипт уже запущен один раз. Если это так, то задача упрощается до: сделать так чтобы ссылка на страницу не перекидывала на сам скрипт то есть table.php?page=1, а оставалась на странице index.php и только передала параметр в сам скрипт table.php, а перезагрузила его на странице index.php
0
kester
216 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 615
05.11.2015, 00:09 8
на скрине page=2, соответственно такой параметр в пхп передаётся.
пхп запустился, отработал, вернул результат и закрылся; новый запрос - новый запуск пхп-файла.

Добавлено через 3 минуты
стоп, а где сама "таблица с данными?" $result вообще обрабатывается? может вместо резалта обрабатывается $posts?
0
eastsida
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
05.11.2015, 00:21  [ТС] 9
Цитата Сообщение от kester Посмотреть сообщение
на скрине page=2, соответственно такой параметр в пхп передаётся.
пхп запустился, отработал, вернул результат и закрылся; новый запрос - новый запуск пхп-файла.
Ну тогда почему я меняю в аякс запросе на page=1 сохраняю файл, по этой логике запрос должен измениться на page=1 и соответственно мне должно вывести таблицу с первыми десятью записями, верно ? А вместо этого продолжается отправка page=2,до тех пор, пока я сам вручную не перезагружу страницу.
С таблицей всё нормально всё выводится.

Добавлено через 10 минут
PHP
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
27
28
<?php
include "db_config.php";
$id = 'admin';
if (isset($_GET["page"])) 
{ 
$page  = $_GET["page"]; 
} 
else 
{ 
$page=1; 
};
$start_from = ($page-1) * 10;
$rs_result = mysqli_query ($link,"SELECT * FROM `logs` WHERE `id` ='$id' LIMIT $start_from, 10");
?>  
<table>
<tr><td>Name</td><td>Phone</td></tr>
<?php
while ($row = mysqli_fetch_assoc($rs_result)) 
{
?>
<tr>
<td><? echo $row['Name']; ?></td>
<td><? echo $row["Phone"]; ?></td>
</tr>
<?php
};
?>
</table>
Ну вот я по убирал всё лишнее поменял в файле с аяксом на page=2, всё равно отсылает запрос page=1
0
kester
216 / 157 / 30
Регистрация: 11.05.2010
Сообщений: 615
05.11.2015, 00:45 10
Цитата Сообщение от kester Посмотреть сообщение
Посмотри вар_дамп гет-массива.
PHP
1
var_dump($_GET, $_GET["page"], $start_from);
0
eastsida
1 / 1 / 2
Регистрация: 22.12.2014
Сообщений: 159
05.11.2015, 01:05  [ТС] 11
Результат, если в аяксе стоит page=2:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
function show()
        {
            $.ajax({
                type: "GET",  
                url: "table.php",
                data:"page=2",
                cache: false,
                success: function(html){
                    $("#content").html(html);
                }
            });
        }
array(2) { ["page"]=> string(1) "2" ["_"]=> string(13) "1446674374310" } string(1) "2" int(10)
И оно не меняется в скрипте table.php, если я просто поменяю data:"page=2" на data:"page=1" и сохраню скрипт с аяксом. Поменяется только когда я вручную перезагружу аякс скрипт. После перезагрузки вручную
array(2) { ["page"]=> string(1) "1" ["_"]=> string(13) "1446674638727" } string(1) "1" int(0)
0
05.11.2015, 01:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2015, 01:05

Разделение на страницы
Нашел скрипт разделения выводимых записей с БД на страницы // Устанавливаем...

Перезагрузка страницы на ajax
Есть калькулятор, типа кредитный. Там первая страница - форма для заполнения и...

Перезагрузка страницы AJAX
Есть AJAX запрос вида: $.ajax({ url: 'test.php', method:&quot;POST&quot;, ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru