2012-03-25 8 views
2

Jede Hilfe ist hier geschätzt Leute. Ich baue eine Web-App in PHP und ich benutze das Yii MVC-Framework, das viele eingebaute Tools hat. Genau wie der Titel sagt, muss ich alle 10 Sekunden ein Div aktualisieren. Im Moment habe ich diese Ajax-Funktionwie jquery oder ajax zu verwenden, um ein div in 10 Sekunden Intervallen zu aktualisieren

<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> 

Für diejenigen von euch, die mit Yü nicht vertraut sind es die meisten Ihrer PHP-Dateien in einem Ordner speichert genannt geschützt. Nun, es ist nur so, dass die oben genannte Codezeile ajaxRequest.open diese URL anfordert, die im geschützten Ordner gespeichert ist, so dass ich weiterhin einen 403-Zugriffs-Zugriffsfehler erhalte. Irgendwelche Ideen, wie ich mit jquery etwas anderes umsetzen oder dieses Zugangsproblem umgehen könnte?

Antwort

5

Usin jquery

$(function() { 
    function callAjax(){ 
     $('#myDiv').load("http://yourdomain.com"); 
    } 
    setInterval(callAjax, 5000); 
}); 
0

eine grobe entspricht Ihren Code in jQuery ist dies:

//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); 
    }); 
}()); 

und 403 wird immer 403. sein, dass der Code ist, der Ihnen sagt, dass Sie nicht, dass die Position einzugeben sind erlaubt (vielleicht haben Sie Authentifizierung benötigen?)

0
// 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"); 
    ?> 
Verwandte Themen