PHP返回值到div值
Posted
技术标签:
【中文标题】PHP返回值到div值【英文标题】:PHP return value to div value 【发布时间】:2012-04-07 13:27:47 【问题描述】:您好,我在将 php 返回值传递给 innerhtml 方法以在固定间隔内更改我的 div 值时遇到问题。
这是我的代码,我包含包含该方法的 php 文件,然后创建一个包含该方法的类的对象,然后我想将返回值回显到 innerHTML 函数。但它不起作用。
var t = setInterval(function()
document.getElementById("content").innerHTML = "\
<? include_once("php/functions.php"); \
$cont = new Content(); \
echo ($cont->getPosts()); \
?>";
, 1000);
但是这样可以使 php 值回显到 innerHTML 函数。
var t = setInterval(function()
document.getElementById("content").innerHTML = "<? echo "Some Text"; ?>";
, 1000);
<? include_once("php/functions.php"); $cont = new Content(); echo ($cont->getPosts());?>
语句有问题,因为当我把它放在 <script>
标记之外时,它会做它需要做的事情,但是它不会每隔几秒刷新一次
提前致谢 我尽量把问题说清楚,如果你有问题,尽管问。
【问题讨论】:
【参考方案1】:我怀疑您所说的“不起作用”的意思是它每秒只会发出相同的东西。这是因为 PHP 在浏览器获取任何 HTML 之前在服务器端运行,这使得代码在到达浏览器时看起来像这样:
var t = setInterval(function()document. getElementById("content"). innerHTML = "whatever php produced";, 1000);
这意味着每次间隔触发时,您的浏览器都会将静态文本“无论 php 生成什么”放入您的 div。
要解决这个问题,您需要一种稍微不同的方法。使用 AJAX 从 PHP 脚本请求更新版本,该脚本仅返回应该在 div 中的内容。如果您自己不熟悉 AJAX,jQuery 有一个功能可以帮您完成。
var t = setInterval( function()$( '#content' ).load( '/url/to/serverside/script.php' ), 1000 );
还要注意 AJAX 是异步的,这意味着静态计时是一个坏主意。相反,您应该使用 on-complete 函数来触发下一次加载。
function loadContent()
$('#content').load( '/url/to/serverside/script.php', function( r, s, x )
setTimeout( loadContent, 1000 );
);
loadContent();
服务器端脚本可能与您最初的脚本类似:
<?
include_once("php/functions.php");
$cont = new Content();
echo ($cont->getPosts());
?>
参考: http://api.jquery.com/load/
【讨论】:
以上是关于PHP返回值到div值的主要内容,如果未能解决你的问题,请参考以下文章