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);

&lt;? include_once("php/functions.php"); $cont = new Content(); echo ($cont-&gt;getPosts());?&gt; 语句有问题,因为当我把它放在 &lt;script&gt; 标记之外时,它会做它需要做的事情,但是它不会每隔几秒刷新一次

提前致谢 我尽量把问题说清楚,如果你有问题,尽管问。

【问题讨论】:

【参考方案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值的主要内容,如果未能解决你的问题,请参考以下文章

html打开一一个新页面返回值到原页面

从选择返回值到函数

自定义Dialog以及Dialog返回值到Activity

ajax传多个值到div怎么传?

Python - 从函数返回多个值到不同的数组

$.getJSON 返回值到变量 [重复]