我有一个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>
提前致谢。
答案 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);