2014-01-16 119 views
0

我有一个php代码,它是一个div。它显示随机文本放置在random.txt文件中。我想刷新这个div,在每一个 - 比方说 - 加载新文本15秒,而不刷新whoe页面。 我发现了几个解决方案来重新加载div,而不刷新页面,它似乎可以用AJAX或JS完成,但他们只刷新一个特定的内容或特定的文件,但我不知道如何插入这个代码并刷新它。刷新包含PHP代码的div,但不刷新页面

这是我的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> 

在此先感谢。

回答

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/

+0

谢谢,该脚本工作完美 – takacsbalazs

1

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

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

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

如果我把什么我的PHP代码到一个PHP文件,并从JavaScript调用它?它可以工作吗? – takacsbalazs

+0

我为它添加了一个示例调用,并且是 – henje

+0

是的,如果不刷新整个页面,从jquery调用一个php页面会更容易。 – Aljie