С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/56: Рейтинг темы: голосов - 56, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30

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

17.08.2016, 20:27. Показов 11670. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru