php页面每60秒刷新一次div部分

时间:2014-08-22 09:35:12

标签: javascript php jquery html ajax

我有一个php网页,这会打印html命令并执行其他操作。我有一个div部分:

<div id="monitor" class="monitoring"><?php include "php/monitoring.php"?></div>

index.php脚本中的此脚本应每60秒调用一次。所以我发现AJAX和JavaScript对此很有用。因此我使用这个脚本:

<script type="text/javascript">
window.setInterval(function () {executemonitor()}, 60000);

function executemonitor() {
    $("#monitor").load("php/monitoring.php");
}

脚本运行正常,但问题是,第二次运行的monitoring.php脚本失败了。该脚本无法使用$ _SESSION变量。我收到错误:注意:未定义的变量:第168行的C:\ xampp \ htdocs \ mi-hand \ php \ monitoring.php中的_SESSION。

如果我使用html refresh命令,它可以工作。

<meta http-equiv="refresh" content="n" />

然后整个页面都刷新了。我想避免这种情况。我想通过执行php脚本只刷新div部分。我怎样才能做到这一点? monitoring.php文件是一个单独的HTML页面。

2 个答案:

答案 0 :(得分:1)

只有在调用session_start()之后,才能在php中使用_SESSION变量。

您的客户端调用2个不同的脚本:

  • index.php,它呈现div并包含monitoring.php
  • monitoring.php,它呈现div的内容

你在index.php中有一个session_start()但在monitoring.php中没有,所以当客户端直接调用monitoring.php时,这不起作用。

您可以创建一个session.php文件,它执行会话初始化(如调用session_start()),然后在index.php和amp;中创建。 monitoring.php使用

include_once('session.php');

如果你有php&gt; 5.4您还可以在monitoring.php中添加以下代码

if (session_status() == PHP_SESSION_NONE) {
  session_start();
}

来源:http://php.net/manual/en/function.session-status.php

答案 1 :(得分:0)

如果您直接访问"php/monitoring.php",则需要在该脚本的开头使用session_start(),而不仅仅是index.php