刷新包含PHP代码的div,而不刷新页面

时间:2014-01-16 23:18:48

标签: javascript php html refresh

我有一个PHP代码,它位于div中。它显示随机文本放在random.txt文件中。我想刷新这个div,在每一个中加载新文本 - 比方说 - 15秒而不刷新whoe页面。 我找到了几个解决方案来重新加载div而不刷新页面,它似乎可以用AJAX或JS完成,但它们只用特定内容或特定文件刷新它,但是我无法弄清楚如何插入这个代码并刷新。

这就是我的div的样子:

<div id="randomtext"> 
<?php
include_once("GetRandomText.php");
$MPTextFile = "random.txt";
$MPSepString = "*divider*";
$MPTextToHTML = false;
MPPrintRandomText($MPTextFile, $MPSepString, $MPTextToHTML);
?>
</div>

每次刷新时都会向div加载一个随机文本。

我尝试使用下面的JS刷新div,但它根本不起作用。对不起,我不擅长。

<script>
var auto_refresh = setInterval(
function () {
var newcontent= '<?php
include_once("GetRandomText.php");
$MPTextFile = "random.txt";
$MPSepString = "*divider*";
$MPTextToHTML = false;
MPPrintRandomText($MPTextFile, $MPSepString, $MPTextToHTML);
?>';
$('#randomtext').html(newcontent);
}, 1000);
</script>

<div id="randomtext"></div>

提前致谢。

2 个答案:

答案 0 :(得分:4)

PHP脚本和Javascript在不同的环境中执行。 (分别是您的服务器和用户的浏览器。)

您需要做的是将嵌入式PHP脚本移动到单独的PHP文件中。并使用这样的东西:

<强> content.php

<?php
include_once("GetRandomText.php");
$MPTextFile = "random.txt";
$MPSepString = "*divider*";
$MPTextToHTML = false;
MPPrintRandomText($MPTextFile, $MPSepString, $MPTextToHTML);
?>

在您的html页面内

<script>
var auto_refresh = setInterval(
(function () {
    $("#randomtext").load("path/to/content.php"); //Load the content into the div
}), 1000);
</script>
<div id="randomtext"></div>

jQuery加载函数的文档:http://api.jquery.com/load/

答案 1 :(得分:1)

据我了解你,你试图在浏览器中执行你的PHP是不可能的。您的服务器解析PHP并用随机字符串替换该代码。

您需要向服务器发出AJAX请求,该请求会评估此脚本并将其发送回客户端。以简化的方式:

request = new XMLHttpRequest();
request.open("GET", "my.php");
request.send();
$("#randomtext").html(request.response);