如何基于php变量在一定时间后自动重新加载页面

时间:2012-12-06 04:38:55

标签: php javascript

我目前有一个php文件,可以自动播放播放列表顶部的歌曲。我有一个$duration值,我从一个mysql数据库中提取,我希望页面在歌曲播放结束后自动刷新。

该歌曲目前在iframe中播放,因此这是告诉该歌曲大约已完成的唯一方法。

我已尝试在javascript中执行此操作,但我在尝试将变量传递到超时期限时遇到问题。

<script type="text/JavaScript">
    function timedRefresh(timeoutPeriod{
        setTimeout("location.reload(true);",timeoutPeriod);
    }
</script>

<body onload="JavaScript:timedRefresh($x);">
    ...
</body>

2 个答案:

答案 0 :(得分:3)

它只是一个简单的PHP变量输出到源:

<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod){
    setTimeout("location.reload(true);",<?php echo $song_duration_in_milliseconds; ?>);
}
</script>

或者使用@Matt Clark的答案中指出的meta-refresh。

答案 1 :(得分:2)

您还可以使用META标记进行刷新。

在PHP中:

<?php
    $Refresh = 600;
?>

在您的HTML头文件中,您可以修改META标记:

<meta http-equiv="refresh" content="<?= $Refresh ?>">

或者如Amadan所述,您可以使用PHP在PHP中指定元标记:

header("Refresh: " . $Refresh);

或在Javascript中:

<script type="text/JavaScript">
    setTimeout("location.reload(true);",<?= $Refresh ?>);
</script>

附注

短标签:

<?= $Variable, $Variable2 ?>

相当于使用:

<?php echo $Variable; echo $Variable2; ?>