Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2013, 16:26   #1
Viboxjuwin
Пользователь
 
Регистрация: 29.09.2013
Сообщений: 11
По умолчанию обновление функции или блока php

Есть php встроенный в код страницы
<div id='right'>
<?php
if ((date("H") == '18')&&(date("i") == '45')) {
echo '<img src="/images/b5.gif">';
} else {
echo '<img src="/images/b0.gif">';
}
?>
</div>

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


Пробовал с аяксом. Второй день воюю с кодом!
Пробовал такое
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>

<body>

<div id="content"></div> //здесь обновляемый блок

<script>
function show()
{
$.ajax({
url: "time.php", //моя php функция
cache: false,
success: function(html){
$("#content").html(html);
}
});
}

$(document).ready(function(){
show();
setInterval('show()',1000);
});
</script>

результата ноль! Помогите, голова пухнет.
Viboxjuwin вне форума Ответить с цитированием
Старый 29.10.2013, 18:22   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Консоль ошибок пуста?

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

По идеи, как-то так должно работать (посмотрите в консоли получаемый ответ от сервера):
Код:
<head>
    <title></title>
    <script type="text/javascript" src="jquery.js"></script>

    <script>
        function show() {
            $.ajax({
                url: "./time.php",
                cache: false,
                success: function (html) {
                    console.log("answer:");
                    console.log(html);
                    $("#content").html(html);
                    setTimeout(show, 1000);
                }
            });
        }

        $(document).ready(function () {
            show();
        });
    </script>
</head>

<body>
    <div id="content"></div>
</body>
Ещё было бы неплохо что-то делать при отсутствии ответа от сервера.
^-.-^ My GitHub

Последний раз редактировалось Fenex; 29.10.2013 в 18:33.
Fenex вне форума Ответить с цитированием
Старый 30.10.2013, 13:39   #3
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Почему бы это не сделать без ajax я так понял нужно проверить текущее время и вывести картинку?! Зачем делать лишнюю нагрузку на сервер?! Использую javascript
Самый перспективный framework Yii (c)
TranceSmile вне форума Ответить с цитированием
Старый 30.10.2013, 15:10   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Время сервера и клиента может не совпадать. Надо синхронизировать время с сервером, далее все операции выполнять на JavaScript.
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PHP-туннель(или SSH..)(или SSL) не могу разобраться Mr_freeman PHP 1 28.11.2012 11:10
phpbb:subsilver2, изменение ширины блока смайлов(при ответе), или почему браузеры игнорят явно заданую ширину ячейки? Пепел Феникса HTML и CSS 1 25.06.2012 09:29
TopServer(PHP+MySQL+Apache+/etc), и обновление компонентов(в основном PHP) Пепел Феникса Софт 2 05.11.2011 14:38
Тестирующая программа (на PHP или JavaScript или Delphi или Visual Basic) @@@Сергей@@@ Фриланс 2 05.05.2011 17:48
Автоматическое обновление блока данных Jakethefish PHP 4 05.03.2011 22:37