我在名为home.php的页面中有以下代码。
<div class="Wrapper-notify" id="Wrapper-notify">
<?php echo rand(10,100); ?>
</div>
如何在常规时间间隔内仅重新加载此div和php代码。 (我正在使用codeigniter框架)请帮助
答案 0 :(得分:1)
PHP在服务器端进行评估,因此您需要调用服务器以重新评估PHP表达式。考虑到您的PHP似乎唯一要做的就是生成一个随机数,并且根据您要完成的整体内容,您可以考虑使用Javascript来“刷新”div。你可以这样做:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
function refreshDiv() {
var divObj = document.getElementById("Wrapper-notify");
var randNum = getRandomInt( 10 , 100 );
divObj.innerHTML = String( randNum );
}
setInterval( "refreshDiv()" , 2000 );
以上Javascript将每隔2秒更改一次div内的数字。
答案 1 :(得分:0)
你可以使用AJAX,
您定义了一个与您的服务器通信以获取数据的功能。
$(&#39; div#Wrapper-notify&#39;)。加载(&#39; http://yoursite.com #newContent&#39;);
使用功能设置时间间隔,并在如下常规时间段内调用。
setInterval(function(){ $(&#39; div#Wrapper-notify&#39;)。load(&#39; http://yoursite.com #newContent&#39;); },6000); //每6000毫秒
答案 2 :(得分:0)
我想你可以用AJAX做到这一点。在Javascript中执行setInterval
每隔x秒执行一次函数。该函数应该通过AJAX调用您的PHP文件并将响应传递给您的DIV。 PHP文件应该只包含
<?php echo rand(10,100); ?>
这种方法对于你可能想要达到的目标而言可能有些过分。
答案 3 :(得分:0)
我只看到一个简单的解决方案,ajax在一个时间间隔内调用php并将响应推送到容器中:
这是一个使用jQuery的例子:
setTimeout(function() {
$.get('/my/page', function(data) {
$('#my_container').html(data);
})
}, 3000);
答案 4 :(得分:0)
如果你只需要10到100之间的随机数,就不需要php ...你只需要一些javascript:jsFiddle
window.onload=function()
{
setInterval(function(){
document.getElementById("Wrapper-notify").innerHTML = parseInt((Math.random()*100)+10);
},1000);
};
如果你正在使用一些jQuery,你可以使用它:jsFiddle
$(document).ready( function()
{
setInterval(function(){$("#Wrapper-notify").html(parseInt((Math.random()*100)+10))},1000);
});
答案 5 :(得分:0)
你应该首先创建一个.php页面,让我们说test.php打印这样的数据:
<?php
echo rand(10,100);
?>
您可以使用此代码从您的网页加载数据,这是纯粹的javascript
function getValue()
{
if (window.XMLHttpRequest)
AJAX=new XMLHttpRequest();
else
AJAX=new ActiveXObject("Microsoft.XMLHTTP");
if (AJAX)
{
AJAX.open("GET", "test.php", false);
AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
AJAX.send();
return AJAX.responseText;
}
else
return null;
}
window.onload=function()
{
setInterval(function(){
document.getElementById("Wrapper-notify").innerHTML = getValue();
},1000);
};
但是,如果您使用的是jQuery,则可以使用.get方法从服务器加载数据
$(document).ready( function()
{
setInterval(function(){ changeDiv(); },1000);
});
function changeDiv()
{
$.ajax({
url: "test.php",
success: function(result)
{
$("#Wrapper-notify").html(result);
}
});
}
答案 6 :(得分:-1)
您需要创建新操作,该操作仅输出从10到100的rand编号。让我们调用它,例如get_rand_num_action:
public function get_rand_num_action(){ return mr_rand(10,100); }
在您的视图中(您有Wrapper-notify div),在或者在标签的末尾为您的get_rand_num_action创建新的ajax请求
从get_rand_num_action响应中收集数据并使用本机JS或jQuery更新您的Wrapper-notify div:
function changeWrapperDiv(){ $ .ajax('/ controller / get_rand_num_action',{ 成功:功能(响应){ $( “#包装-通知”)文本(响应)。 } }); }// Change div every 5 seconds
setInterval(5000, changeWrapperDiv)
希望这会对你有所帮助。