0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30

Обновление переменной без перезагрузки страницы

17.08.2016, 20:27. Показов 11920. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я тут новичок,поэтому не судите строго..

Суть в чем: у меня есть переменная, скажем $sum, значения которой берутся из базы данных, к примеру:

$sum = data1["data1"] * data2["data2"];

Мне нужно, чтобы эта переменная $sum обновлялась без перезагрузки страницы через указанное время (скажем 10 секунд) и выводилась в нужном div:

<div id="sum">$sum</div>

Буду благодарен за конкретные примеры (нужное подставлю сам).
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.08.2016, 20:27
Ответы с готовыми решениями:

Обновление переменной без перезагрузки страницы
подскажите как сделать обновление переменной hph без перезагрузки страницы при смене ее значения.

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

Обновление блока без перезагрузки страницы
Помогите, вот у меня есть сайт на Ucoz, там есть блок &quot;Опросы&quot; Мне надо чтобы при нажатии на ссылку, обновлялся только этот блок, без...

48
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
17.08.2016, 22:10  [ТС]
Студворк — интернет-сервис помощи студентам
XRoy, я сразу не правильно выложил- потом подправил ( в теме), а по факту сделал все правильно..

Добавлено через 1 минуту
Shakalaka, при чем здесь консоль? должно же с обновлением выводиться переменной на странице - а ничего не обновляется..
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
17.08.2016, 22:11
Цитата Сообщение от skroliks Посмотреть сообщение
при чем здесь консоль?
консоль браузера, если в js возникли ошибки они выведутся там...
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
17.08.2016, 22:22  [ТС]
Shakalaka, ну вы же мне написали что нужно где прописать, я так и прописал - итог: ничего не изменяется просто ( как должно быть).. вот и вся ошибка.. где в консоли смотреть - я без понятия
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
17.08.2016, 22:25
Цитата Сообщение от skroliks Посмотреть сообщение
где в консоли смотреть - я без понятия
f12 или ctrl + shift + i вкладка консоль. А вообще, зачем вы лезите в дебри, если банально не знаете что такое консоль браузера?
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
17.08.2016, 22:31  [ТС]
Shakalaka, о каких дебрях вы пишете? Если для вас это дебри - то, пожалуйста, не отвечайте больше..
Я задал конкретный вопрос и предоставил конкретный данные..
Все подставил как написали - и не работает..
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
17.08.2016, 22:39
Цитата Сообщение от skroliks Посмотреть сообщение
Все подставил как написали - и не работает..
Для особо одаренных, вы задали вопрос по js, если что-то не работает значит есть ошибка, ошибки JS отображаются в консоли браузера.
Цитата Сообщение от skroliks Посмотреть сообщение
Я задал конкретный вопрос и предоставил конкретный данные.
Ваши конкретные данные(код вызова функции на php) - это просто мусор, который ни о чем не говорит.
Цитата Сообщение от skroliks Посмотреть сообщение
Если для вас это дебри - то, пожалуйста, не отвечайте больше..
Пожалуй так и сделаю.
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
17.08.2016, 22:57  [ТС]
Shakalaka, для начала - я в самом начале писал, что я новичок и мало что понимаю..
Поэтому я сразу написал, что я новичок, и нужны конкретные примеры.. Я без понятия где эту "консоль смотреть"если что не так..
Я задал конкретный вопрос:
есть переменная $a и как ее отображать исходя из формулы без перезагрузки страницы на приблизительном примере - все варианты что мне предложили - я пробовал - и ничего не прошло..
я ни чем не хотел вас обидеть
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
17.08.2016, 23:00
skroliks,
Берете код который написал Shakalakaи строчку за строчкой меняете и смотрите что работает и не работает, так точно будете знать где проблема
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
18.08.2016, 13:18  [ТС]
Цитата Сообщение от XRoy Посмотреть сообщение
Берете код который написал Shakalakaи строчку за строчкой меняете и смотрите что работает и не работает, так точно будете знать где проблема
В общем как оказалось я все таки знаю что такое консоль (просто не сразу вспомнил).
Сделал все как написал товарисч Shakalaka - но в консоли выдает ошибку на его код javascript, а именно:

GET http://site.ru/account/sum.php 500 (Internal Server Error) script.js:5

строка 5 в коде - это:

req.send(); - почему-то ссылается на ошибку

И еще: правильно что вывод должен быть вида <div id="sum"></div> - т.е. там просто пустое место?

Заранее спасибо за ответы!
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.08.2016, 13:42
Цитата Сообщение от skroliks Посмотреть сообщение
по факту сделал все правильно
нет, у вас в принципе всё неправильно
вы не понимаете главного, а именно -- для обновления какой-то части страницы вам необходимо два файла
первый файл загрузится в браузер пользователя, создаст там контейнер <div id="sum"></div>
и этот же первый файл раз в 10 секунд будет отсылать запрос второму файлу, который будет получать значение из базы данных, сохранять его в PHP-переменной $sum и будет выводить эту переменную в выходной поток PHP-функцией echo


где в вашем "всё правильно сделанном" имеется хоть один намёк на второй файл?
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
18.08.2016, 13:54  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
нет, у вас в принципе всё неправильно
вы не понимаете главного, а именно -- для обновления какой-то части страницы вам необходимо два файла
первый файл загрузится в браузер пользователя, создаст там контейнер <div id="sum"></div>
и этот же первый файл раз в 10 секунд будет отсылать запрос второму файлу, который будет получать значение из базы данных, сохранять его в переменной $sum и будет выводить эту переменную в выходной поток PHP-функцией echo
javascript будет прописан только в первом файле
где в вашем "всё правильно сделанном" имеется хоть один намёк на второй файл?
Ну смотрите, у меня есть основной файл php в котором выводится <div id="sum"></div> и прямо в нем (я решил не заморачиваться с созданием отдельного js файла) код js:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>
var container = document.getElementById("sum");
function getSum(){
    var req = new XMLHttpRequest();
    req.open("GET", "sum.php");
    req.send();
    req.onreadystatechange = function(){
        if(req.readyState == 4 && req.status == 200){
            container.innerHTML = req.responseText;
        }
    }
}
setInterval(function(){
    getSum();
}, 10000)
</script>
Как видим он отсылается к файлу sum.php где я и описал получение переменных из базы, а именно:

Code
1
2
$sum = $func->SumCalc($sonfig_site["a_in_h"], $user_data["level"], $user_data["last_sbor"]);
echo $sum;
(подключение к базе и определение функций я там сделал).

В итоге оно выдает мне в консоли ошибку:

GET http://site.ru/account/sum.php 500 (Internal Server Error)

ссылаясь на ошибку в строке:
Code
1
req.send();
Что я не так делаю?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.08.2016, 14:03
Цитата Сообщение от skroliks Посмотреть сообщение
(я решил не заморачиваться с созданием отдельного js файла)
второй файл, о котором я вам написал -- это не js-файл, это именно PHP-файл, потому что только PHP-файл может получать данные из БД

первый файл, который создаст пустой контейнер <div id="sum"></div> (и в котором будет прописан javascript-код для регулярного вызова второго файла) -- он может быть просто HTML-файлом
а вот второй файл -- он обязательно должен быть PHP-файлом (повторяю: потому что только PHP может работать с БД)
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
18.08.2016, 14:05  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
второй файл, о котором я вам написал -- это не js-файл, это именно PHP-файл, потому что только PHP-файл может получать данные из БД
Ну я же и создал второй файл sum.php в котором описал получение переменной из БД и на который ссылается код js. Что не так?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.08.2016, 14:13
и наконец, хоть какое-нить другое аглицкое слово, кроме sum, вам известно?
даже у Эллочки-людоедки в запасе было 30 слов, а у вас всего одно: id контейнера у вас sum, PHP-переменная тоже $sum, теперь ещё и имя файла sum.php

--------------------------------
где заголовок в вашем PHP-файле?
где строка header ("Content-type: text/plain; charset=utf-8");? -- она должна быть перед инструкцией echo $sum;
1
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
18.08.2016, 15:06  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
и наконец, хоть какое-нить другое аглицкое слово, кроме sum, вам известно?
даже у Эллочки-людоедки в запасе было 30 слов, а у вас всего одно: id контейнера у вас sum, PHP-переменная тоже $sum, теперь ещё и имя файла sum.php
--------------------------------
где заголовок в вашем PHP-файле?
где строка header ("Content-type: text/plain; charset=utf-8");? -- она должна быть перед инструкцией echo $sum;
Да без разницы как файл называется - это все можно потом переименовать, я просто пытаюсь нормально разобраться.
А по поводу header ("Content-type: text/plain; charset=utf-8"); - там все это есть, вместе с подключением к базе и определением функций.

Добавлено через 43 минуты
Цитата Сообщение от kalabuni Посмотреть сообщение
и наконец, хоть какое-нить другое аглицкое слово, кроме sum, вам известно?
даже у Эллочки-людоедки в запасе было 30 слов, а у вас всего одно: id контейнера у вас sum, PHP-переменная тоже $sum, теперь ещё и имя файла sum.php
--------------------------------
где заголовок в вашем PHP-файле?
где строка header ("Content-type: text/plain; charset=utf-8");? -- она должна быть перед инструкцией echo $sum;
Так вы поможете или нет?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.08.2016, 15:11
сначала проверьте ваш PHP-файл -- просто запустите его в браузере и посмотрите, что он вам выдаст на странице: как я понимаю, это должно быть какое-то целое число
когда проверите, приступим к исправлению ваших ошибок в javascript'e -- а они там имеются, начиная прямо с самой первой строки кода
1
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
18.08.2016, 15:40  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
сначала проверьте ваш PHP-файл -- просто запустите его в браузере и посмотрите, что он вам выдаст на странице: как я понимаю, это должно быть какое-то целое число
когда проверите, приступим к исправлению ваших ошибок в javascript'e -- а они там имеются, начиная прямо с самой первой строки кода
Такс, файл sum.php подставил и проверил - выдает целое число, что дальше?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.08.2016, 15:59
Лучший ответ Сообщение было отмечено skroliks как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getSum ()
    {
    var req = new XMLHttpRequest ();
    req.open ('get', 'sum.php', true);
    req.onreadystatechange = function ()
        {
        if (req.readyState == 4)
            {
            document.getElementById ('sum').innerHTML = req.responseText;
            setTimeout (getSum, 10 * 1000);
            }
        }
    req.send(null);
    }
 
onload = getSum;
1
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
18.08.2016, 16:04  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
function getSum ()
* * {
* * var req = new XMLHttpRequest ();
* * req.open ('get', 'sum.php', true);
* * req.onreadystatechange = function ()
* * * * {
* * * * if (req.readyState == 4)
* * * * * * {
* * * * * * document.getElementById ('sum').innerHTML = req.responseText;
* * * * * * setTimeout (getSum, 10 * 1000);
* * * * * * }
* * * * }
* * req.send(null);
* * }
onload = getSum;
К сожалению не работает. Отсылается с ошибкой на:

req.send(null);

Что еще не так?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.08.2016, 16:15
откуда эти множественные звёздочки появились, интересно?

мой код (без звёздочек) на 146% рабочий
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2016, 16:15
Помогаю со студенческими работами здесь

Обновление JS скрипта без перезагрузки веб-страницы
Есть скрипт: &lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt; &lt;!-- function getRandom300(m,n){ return...

Обновление данных шаблона без перезагрузки страницы
всем привет. пытаюсь сделать обновление ячейки каждые 3 секунды но без перезагрузки самой страницы. так вот пытаюсь сделать обновление...

Обновление контента по условию из БД без перезагрузки страницы
Добрый день! Как сделать подгрузку контента из БД по условию без перезагрузки страницы. На данный момент есть 2 радио кнопки и кнопка...

Обновление контента в блоке без перезагрузки страницы
Есть страница index.html Есть блок, например с классом content, в котором много блоков с различным контентом. Есть также...

Ajax обновление контента без перезагрузки страницы
Ребята доброго времени! Помогите пожалуйста! Есть не доработанный сайт, в нем есть страница, в странице есть код обновления контента без...


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

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

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru