如何从动态创建的php文件中读取echo并刷新div中的echo

时间:2015-02-27 12:27:09

标签: javascript php html ajax

我每10秒用jquery刷新div的内容。 我从名为status.php

的php文件中读取内容

js和div:

 <script>
function autoRefresh_div()
{
  $("#ReloadThis").load("status.php");// a function which will load data   from other file after x seconds
}

setInterval('autoRefresh_div()', 10000); // refresh div after 10 secs
</script>

<div id="ReloadThis"></div>

当我把它放入我的status.php时,它运行正常:

$mystatus = 'busy';

echo $mystatus;

在div中出现几秒钟后:&#34;忙碌&#34;。

当我尝试动态地给$ mystatus一个值时,它不再是wrk了:

形式:

<form method="post" action="status.php">
 <input type="text" name="status"/>
 <input type="submit" name="submit" value="Submit" />
</form>

和status.php:

$mystatus = $_POST['status'];

echo $mystatus;

当我打开status.php时,它会回显输入的值。 但是javascript不会在div中显示回声

为什么在我动态创建$ mystatus的值时这不起作用?

3 个答案:

答案 0 :(得分:1)

您对PHP所做的每个请求都是一个独立的请求。因此,假设您已使用POST提交了状态值,您的php脚本将只记住该请求。

因此,下次当你的jquery尝试请求该值时,它将不存在。

您需要将POST值存储到会话,然后每次重新发送会话值。

这样的事情:

session_start();
if(isset($_POST['status'])) 
     $_SESSION['status'] = $_POST['status'];

if(!empty($_SESSION['status'])) {
    echo $_SESSION['status'];
}
else 
    echo "default";

当然,在使用session_start();

执行此操作之前,您必须先启动会话

答案 1 :(得分:0)

您必须将$ _POST [&#39; status&#39;]存储在上面给出的会话变量中,或插入到数据库中。

答案 2 :(得分:0)

其他答案是正确的,但他们假设您已经发布了一次状态,然后希望刷新返回与之前发布的值相同的值。

但是,如果您希望刷新也重新发布当前表单数据,那么您只需将该帖子数据包含在load()函数中,如下所示:

$("#ReloadThis").load("status.php", $("form").serialize());