За последние 24 часа нас посетили 16419 программистов и 1678 роботов. Сейчас ищут 909 программистов ...

Обновление данных на стороне пользователя

Тема в разделе "PHP для новичков", создана пользователем car1ot, 22 дек 2017.

  1. car1ot

    car1ot Новичок

    С нами с:
    26 май 2017
    Сообщения:
    21
    Симпатии:
    0
    Есть переменная, к которой присваивается значение из базы данных при обновлении страницы и она выводится на экран:

    $bonustime = R::findOne('bonuses', 'profile_id = ?', array($_SESSION["logged_user"]->profile_id));

    if ($bonustime) {
    $bonustime = $bonustime->bonus_new - time();

    echo $bonustime;
    }

    Как сделать так, чтобы эта переменная постоянно обновлялась на экране, без обновления страницы с помощью AJAX или JQUERY?
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    А ничего, что в вашем вопросе содержится ответ?
     
  3. car1ot

    car1ot Новичок

    С нами с:
    26 май 2017
    Сообщения:
    21
    Симпатии:
    0
    Как? Я пробовал делать POST запросы и это всё зациклить в setInterval, но ничего не обновляется? Может не POST запрос делать, а другое?
     
  4. Walk

    Walk Активный пользователь

    С нами с:
    7 сен 2008
    Сообщения:
    452
    Симпатии:
    86
    Самый простой и костыльный вариант - это сделать js скрипт, который будет каждые 3-4 секунды (чем меньше - тем больше нагрузка на сервер) отправлять ajax запрос и обновлять цифру на странице.
     
  5. car1ot

    car1ot Новичок

    С нами с:
    26 май 2017
    Сообщения:
    21
    Симпатии:
    0
    Так напишите уже этот ajax запрос, уже 3 часа мучаюсь, найти не могу, тестирую - не работает
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    говорят делается по какому-то крону
     
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Да. Именно так это и работает. Если это доставляет мучение - не ту профессию выбрал.
     
  8. car1ot

    car1ot Новичок

    С нами с:
    26 май 2017
    Сообщения:
    21
    Симпатии:
    0
    Код напиши ajax, чтобы брал переменную из PHP, больше ничего не нужно.
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    PHP:
    1. //...
    2. return response()->json(['foo' => 'bar']);
    Код (Javascript):
    1. import axios from 'axios'
    2.  
    3. axios.get('/route')
    4.   .then((response) => {
    5.     console.log(response.data.foo)
    6.   })
    7.   .catch((e)  => {
    8.     console.error(e)
    9.   })
    ну, я бы написал примерно так
     
    alexpride1993 и mkramer нравится это.
  10. car1ot

    car1ot Новичок

    С нами с:
    26 май 2017
    Сообщения:
    21
    Симпатии:
    0
    Выдаёт ошибку, можно с ajax и попроще?
     
  11. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    чувак, это раздел для новичков, тут можно и попроще, всё зависит от того на сколько ты хочешь разобраться и как глубоко капнуть. Готовых решений тебе ни кто не даст, могут дать ссылку вроде этой:
    https://learn.javascript.ru/ajax-xmlhttprequest

    В моем примере тебе нужно разобраться дополнительно вот с этим:
    http://prgssr.ru/development/vvedenie-v-paketnyj-menedzher-npm-dlya-nachinayushih.html
    https://habrahabr.ru/post/309306/
    https://learn.javascript.ru/es-modern-usage#babel-js
    https://www.npmjs.com/package/axios

    Давай пример своего кода и кто-нибудь направит тебя в нужную сторону.

    p.s. ну или на фриланс ))
     
    виталий032 нравится это.
  12. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Думаете, что над вами издеваются? Ошибочка, т.к. издеваетесь именно вы. Как думаете, сколько раз тема про Ajax поднималась в сети, сколько уже есть готовых примеров или решений? Десятки, сотни, тысячи? Последняя цифра будет ближе всего, но только за последние полгода-год. А за всё время, я думаю, что счет идет на миллионы или даже миллиарды.
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Заценил :)
     
  14. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Вообще, мне в последнее время JS стал доставлять даже больше, чем php, async/await, for...of и прочее сделали из него удобный язык. Оно конечно понятно, что это сахар для того что и так было, но код стал намного аккуратнее и логичнее.
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Согласен. Но мне просто в этой теме понравился код Laravel :)
     
  16. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А как же без него? На бэке фреймворк, на клиенте фреймворк и жизнь удалась ))
     
  17. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    @car1ot, твоя задача решается в два шага
    Шаг 1. Ты пишешь php-скрипт, который дёргает из базы нужное значение и выводит его, больше ничего не делает
    Шаг 2. JS в нужный интервал дёргаешь этот скрипт, а результат подставляешь в нужное место вёрстки. Как дёргать JS-ом скрипт? Можно через jQuery, можно через AXIOS, который использовал @romach, можно на чистом JS через https://learn.javascript.ru/ajax-xmlhttprequest, всё легко гуглится. Вводишь jQuery ajax, AXIOS ajax и т.п.
     
  18. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    AlexProg нравится это.