как использовать JQuery или Ajax, чтобы обновить div с 10-секундными интервалами - PullRequest
1 голос
/ 26 марта 2012

Любая помощь вообще ценится здесь, ребята. Я создаю веб-приложение на php и использую инфраструктуру Yii MVC, которая имеет много встроенных инструментов. Как и в названии, мне нужно обновлять div каждые 10 секунд. На данный момент у меня есть эта функция Ajax

<script type="text/javascript">
    function ajaxFunction(){
    var ajaxRequest;  

    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
                var list = document.getElementById('logged_in_users_list');
        if(ajaxRequest.readyState == 4){
            list.innerHTML = ajaxRequest.responseText;
                        setTimeout('ajaxFunction()',10000);
        }
    }
    ajaxRequest.open("GET", "protected/controllers/room/openRoom", true);
    ajaxRequest.send(null);
}
</script>


<script type="text/javascript">
            setInterval(function() {ajaxFunction();}, 5000);
</script>

Для тех из вас, кто не знаком с Yii, большинство ваших php-файлов хранятся в папке с именем protected. Что ж, это просто, строка кода ajaxRequest.open, приведенная выше, запрашивает тот URL-адрес, который хранится в защищенной папке, поэтому я продолжаю получать ошибку 403, запрещающую доступ. Любые идеи, как я мог бы реализовать что-то другое с jquery или обойти эту проблему доступа?

Ответы [ 3 ]

5 голосов
/ 26 марта 2012

Усин jquery

$(function() {
    function callAjax(){
        $('#myDiv').load("http://yourdomain.com");
    }
    setInterval(callAjax, 5000 );
});
1 голос
/ 26 марта 2012

Примерный код вашего кода в jQuery:

//execute call immediately
(function check(){
    //a GET AJAX call
    $.get('protected/controllers/room/openRoom')
    .done(function(data){
        //when we receive, populate
        $('#logged_in_users_list').html(data);
    })
    .always(function(){
        //regardless of a fail or success, call again after 10 seconds
        setTimeout(check,10000);
    });
}());

и 403 всегда будут 403. Это код, который говорит вам, что вы не можете войти в это местоположение (может быть, вам нужна аутентификация?)

0 голосов
/ 05 апреля 2014
    // zisu.php

    <html>
    <head>
    <script type="text/javascript">
    var auto_refresh = setInterval(
           function ()
           {
           $('#div1').load('time.php');
           }, 10000);
    </script>
    </head>
    <body>
    <div id ="div1">
    <?php
    echo date("h:i:s A");
    ?>
    </div>
    </body>
    </html>


// time.php
    <?php
    echo date("h:i:s A");
    ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...