Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22

Отображение содержимого mysql в режиме реального времени

26.12.2014, 14:31. Показов 3641. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Есть php:
PHP/HTML
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<html>
    <head>
        <title>Action</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="css/style.css">
        <link rel="shortcut icon" href="favicon.ico">
    </head>
    <body>
    <center>
        <div class="allpage">
            <div class="shapka">
                <span>Action</span>
            </div>
            <div class="page">
                <div class="news">
                </div>
                <div class="action">
                    <div class="primesta">
                        prizmesta
                    </div>
                    <div class="panelupravl">
                        
                    </div>
                    <div class="logs">
                        <?php
                        $bis=mysql_query("select * from table");
                        while ($row = mysql_fetch_assoc($bis))
                        {
                            echo $row['iduser']." ".$row['idids']."<br>";
                        }
                        ?>
                    </div>
                </div>
                <div class="wis">
                </div>
                <div class="FAQ">
                </div>
                <div class="paters">
                </div>
            </div>
            <div class="footer">
            </div>
        </div>
    </center>
    </body>
в нем в div'е "logs" отображается содержимое таблицы, но оно отображается только при загрузке, либо перезагрузке. Как сделать отображение в режиме реального времени? То есть периодически в таблицу будут добавляться строки, и необходимо в режиме реального времени отображать содержимое таблицы в этот div.
Я понял, что для реализации этого необходим AJAX, но что и куда вставлять понять не могу.
Заранее спасибо за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.12.2014, 14:31
Ответы с готовыми решениями:

Генерирование MD5 в режиме реального времени
Есть HTML форма, в которой вводятся параметры, передаваемый из переменных php - эта часть работает. но проблема в том. что при загрузке...

Не обрабатывается скрипт в режиме реального времени
Привет! У меня есть страничка http://hobbylife-market.ru/kabinet/korzina - если добавить туда товары и изменять количество, то стоимость...

Выполнение jquery в режиме реального времени
Есть скрипт который определяет ширину и и сходя из этого подгоняет мин и макс. кол-во элементов в слайдере. Вот как выглядит JQUERY: ...

7
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
26.12.2014, 17:20
Ral, создай отдельный файл, например get_logs.php и помести туда пхп-код, который добывает из базы данных информацию, но не надо пробегаться циклом и делать echo. Вместо этого нужно преобразовать массив в JSON формат, для этого в php есть функция json_encode(), а затем вернуть эту строку с помощью echo. Приблизительно будет так

get_logs.php:
PHP
1
2
3
4
// тут видимо нужно еще подключиться к базе данных
$bis=mysql_query("select * from table");
$response = json_encode($bis);
echo $bis;

а в клиентскую часть добавить скрипт, который через определенный интервал будет стучаться к серверу и брать оттуда данные:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getLogs(){
    // раз мы в разделе jQuery, предполагаю, что он подключен
    $.ajax({
        url: "get_logs.php", // обратите внимание, это имя нашего php файла, который отдает данные
        success: function(msg){
            // msg тут будет доступен в виде строки, 
            // которую нужно обратно преобразовать в объект с помощью функции JSON.parse()
            var resp = JSON.parse(msg);
            // дальше с этим объектом можно работать так, как хочется
            // в том числе составить HTML код с вставками из объекта 
            // и потом содержимое вставить туда, куда нужно
 
 
            setTimeout(getLogs, 5000); // через 5 сек. снова вызовем функцию
    });
}
 
window.onload = function(){ setTimeout(getLogs, 5000); /* 5000 - 5 sec */ };
ПС. Видимо это не совсем то, что вам нужно. Ибо выводить запись сразу же, как она сохранилась в базу, немного сложнее и обычным клиентским Javascript не делается, если я не ошибаюсь))

Данный скрипт будет обновлять данные раз в пять секунд, время естественно можно менять.
0
26.12.2014, 18:18

Не по теме:

z-z, у метода $.ajax(), который вы и приводите в примере, есть параметр dataType - формат данных, ожидаемый в ответе с сервера. Так вот, чтоб не делать лишних телодвижений, мы указываем dataType: 'json' и на выходе получаем объект:

JavaScript
1
2
3
4
5
6
7
$.ajax({
    /* прочие параметры */,
    dataType: 'json',
    success: function(msg){
        // msg - уже объект
    }
});

0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22
26.12.2014, 18:53  [ТС]
Спасибо! Только я не понял, как вывод сам делать в div logs? как их связать?
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
26.12.2014, 21:49

Не по теме:

Lazy_Den, спасибо, не знал =)



Ral, зависит от того, что вам возвращает сервер.
Предположим, что возвращается такой объект:

JavaScript
1
2
3
4
5
6
{
    '0': 'Vasya',
    '1': 'Petya',
    '2': 'Aleksandr',
    '3': 'z-z'
}
Я не смог понять, что Вы получаете, поэтому привел самый простой пример. На самом деле все зависит от вас. Вы можете сформировать на сервере какой угодно объект и отдать его клиенту, а потом обрабатывать со стороны клиента. Так вот это добро можно, например, выводить так(опишу то, что внутри success, все остальное не буду описывать):


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var str = ""; // создаем пустую строку
 
// далее пробегаемся по объекту-ответу от сервера и для каждой пары дополняем строку
 
for(var i in msg) str += i + " " msg[i] + "<br>"; 
 
// затем вставляем эту строку  куда хотим
// например, как в вашем примере, в блок с классом .logs
 
 
$('.logs').html(str);
 
// тут нужно обратить внимание на две вещи
 
// 1. содержимое полностью перезаписывается
// если нужно дополнять, а не перезаписывать, то меняем 
// $('.logs').html(str); на $('.logs').html($('.logs').html() + str);
 
// 2. надо, естественно, правильно указать блок, в который вставляем содержимое.
// если блоков с классом logs на странице несколько, то будет вставляться во все блоки =)
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22
26.12.2014, 21:51  [ТС]
забыл уточнить, там важно, что бы объекты появлялись в последовательности занесения в бд. То есть первый занесенный объект будет в самом низу списка, а последний вверху
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
26.12.2014, 23:12
Ral, по моему легче отсортировать на сервере в правильном порядке и так выдать клиенту
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 22
31.01.2015, 21:29  [ТС]
Дополз до следующего:
JS-скрипт, делающий запрос на 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 ()
            {
                window.setInterval(function () {
                    var idstavk = "<?php echo $idstavk; ?>";
                    var screen_name = "<?php echo $screen_name; ?>";
                    var first_name = "<?php echo $first_name; ?>";
                    var last_name = "<?php echo $last_name; ?>";
                    var photo_big = "<?php echo $photo_big; ?>";
                    $.ajax({
                        url: "action_interval.php",
                        type: "POST",
                        data: {idstavk: idstavk, screen_name: screen_name, first_name: first_name, last_name: last_name, photo_big: photo_big},
                        success: function (data) {
                            if (data == 1)
                            {
 
                            }
                            else
                            {
                                $(".chat_pyst").remove();
                                $("ul").prepend(data);
                            }
                        }
                    });
                }, 500);
            });
Сам php-скрипт берущий информацию из бд:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include "bd.php";
$idstavk=$_POST['idstavk'];
$screen_name=$_POST['screen_name'];
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$photo_big=$_POST['photo_big'];
$result=mysql_query("SELECT * FROM log_stavok WHERE idstavk>'".$idstavk."' ORDER BY idstavk desc",$db);
$mq=mysql_num_rows($result);
if ($mq > "0"){
    $arr=mysql_fetch_assoc($result);
    do
    {
        echo "<li><img class='outp' src='" . $arr['photo_big'] . "'/> <a href=http://vk.com/" . $arr['screen_name'] . " class='link'>" . $arr['first_name'] . " " . $arr['last_name'] . "</a></li>";
    }
    while($arr=mysql_fetch_assoc($result));
}
else
{
    echo 1;
}
Работать-работает, но почему-то цикл зацикливается и выдает каждый раз заново все содержимое бд, хотя мне надо только новые строки. Подскажите, пожалуйста, где ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2015, 21:29
Помогаю со студенческими работами здесь

Отображение введенного текста в режиме реального времени
Нужно сделать, чтобы введенный в textarea текст, сразу же отображался в соответствующем поле. Как это осуществить? Поля ввода...

Обновление статус бара в режиме реального времени
Есть переменная $hpproc отвечающая за ширину статус бара. &lt;div class=&quot;progress progress-striped active&quot;&gt; &lt;div...

Извлечение значения input на js в режиме реального времени
Доброго времени суток, форумчане. Возникла одна проблема - необходимо при изменении значения &lt;input type=&quot;range&quot;&gt; ...

Меняющийся в режиме реального времени индикатор загрузки
Здравствуйте! Возникла проблема с индикатором. Есть некий код к примеру //соединение с бд и тд.... $widthhp=$param; echo&quot; ...

Как не показать реального содержимого?
подскажите, как такое сделать! а своей html страничке в ссылке сделал выносной файл &lt;a href=&lt;?php include 'r.php'...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru