как я "ajaxify" мой код php? - PullRequest
       37

как я "ajaxify" мой код php?

0 голосов
/ 03 апреля 2010

У меня есть div, которые я хочу отображать в определенное время в течение дня. У меня это работает в PHP, но требует обновления браузера вручную. Я хотел бы, чтобы мой скрипт автоматически загружал правильный div, когда настало время.

Я на правильном пути? Возможно, есть плагин jquery для такого рода вещей, который бы справлялся с обновлением?

Любая помощь очень ценится ... Спасибо!

<?php

$time = date("H\:i");

if (($time > "16:59") && ($time < "18:59")) {
    echo "<div>1</div>";
}

elseif (($time > "18:59") && ($time < "20:59")) {
    echo "<div>2</div>"; 
}

elseif (($time > "20:59") && ($time < "22:59")) {
    echo "<div>3</div>";    
}

 else {
    echo "<div id='out'><p>Outside the specified point in time.</p></div>";
}

?>

Ответы [ 4 ]

2 голосов
/ 03 апреля 2010

Вам не понадобится плагин jquery для обновления, вы можете просто создать таймер, который проверяет каждые несколько минут / секунд

@ Джейси была права упоминать таймеры. Он упомянул jquery timer, но вы также можете использовать обычные таймеры javascript, такие как (вы пометили jquery, поэтому я буду использовать jquery):

var timer = setInterval(function(){
    var hour = (new Date()).getHours();

    if (hour >= 17 && hour < 19) {
        var $div = $('<div>1</div>');
    } else if (hour >= 19 && hour < 21) {
        var $div = $('<div>2</div>');
    } else if (hour >= 21 && hour < 23) {
        var $div = $('<div>3</div>');
    } else {
        var $div = $("<div id='out'><p>Outside the specified point in time.</p></div>");
    }
    $div.appendTo('body');
}, 2000); // checking every 2 seconds.

Это должно сработать

0 голосов
/ 03 апреля 2010

Для начала, используя AJAX-вызов jQuery и простой таймер js. Если у страницы есть один div с идентификатором «showithere», это будет перезагружать вашу страницу PHP каждые 10 минут:

<head>
<script>
​function fn () {
  alert ('now');
  $("#showithere").load ("http://jsbin.com/help/");
}
</script>
</head>

<body onLoad="setTimeout (fn, 600000);" >

1004 *

0 голосов
/ 03 апреля 2010

Ваш бэкэнд должен возвращать определенный бит HTML, который вы хотите отобразить.

Ваш интерфейс должен просто опросить один конкретный URL-адрес на серверной части, которая возвращает эту информацию.

(Есть другие способы сделать это, но это мое мнение)

0 голосов
/ 03 апреля 2010

Я бы использовал JQuery timer , чтобы опрашивать время от времени; когда настало время, используйте $. load () , чтобы загрузить новую информацию в div на странице. Вы должны делать проверки времени в Javascript, как вы это делали, чтобы не постоянно передавать ненужные данные между клиентом и сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...