【问题标题】:Load html dynamically according to output of php file根据php文件的输出动态加载html
【发布时间】:2014-09-24 02:49:22
【问题描述】:

我正在尝试在 html div 中加载 php 文件的输出。我已经用 jQuery 的($('div').load(url_here)) 方法尝试过了,它工作正常,但我的 php 文件如下:

<?php
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo date('h:i:s').'<br>';
    //flush the output buffer
    flush();
    //send the output buffer
    ob_flush();
   //sleep here
    sleep(1);
} ?>

现在这个 php 文件每秒打印一行,但是当我在 html 的 div 中加载这个 php 时,加载页面需要 10 秒,然后总共添加 10 行。我想加载 div,因为 php 文件每秒返回一行。我的意思是,我希望 html 响应与 php 相同(即每秒加载一行,所以在第一秒它应该加载第一行,在第二秒它应该添加第二行等等)。那么,有可能吗? (P.S - 我是这个动态网络的初学者)

【问题讨论】:

  • 你应该学习一些关于ajax的东西
  • 没有 javascript,你想做的事是不可能的。

标签: javascript php jquery html


【解决方案1】:

为了每分钟都得到结果,你必须每分钟打开一个ajax请求来控制时间在javascript中,而不是在php中。

试试:

var timer = window.setInterval(function()
{
    $('div').load(url_here); 
}, 1000);

并删除 php 中的 for 循环和 sleep()

更新

要保留结果的历史记录,试试这个:

var content = $('div').text();
$('div').load(url_here).append(content);

【讨论】:

  • 不能投票(还没有 15 个声望)。但是你的两个解决方案都有效。只是一个问题,这两种解决方案都给出了相同的输出,一次又一次地替换同一行,是否有可能在新行中产生新的结果?
  • @JigarPatel 别担心投票,伙计。我很高兴这对你有所帮助。请参阅我的更新以了解您的最后一个问题。
  • 这行得通! Gret @DontVoteMeDown,简单而有用的逻辑:D
【解决方案2】:

PHP

   <?php

        echo date('h:i:s').'<br>';

    ?>

还有 JS

<script>

var timer_php = setInterval(function(){
$("#anydiv").load("abovefile.php");
},1000);

setTimeout(function(){
clearTimer(timer_php);
},10000);
</script>

【讨论】:

  • 这就是我猜用户想要的,他希望 php 在每 1 秒到 10 秒后加载一次
  • 是的,现在我可以看到你的完整代码了。为 OP 添加一些解释会很有帮助。
  • 您的解决方案运行良好。@DontVoteMeDown 的解决方案也运行良好。
猜你喜欢
  • 2019-03-12
  • 2013-05-12
  • 2018-02-01
  • 1970-01-01
  • 2017-07-09
  • 2014-10-17
  • 2019-07-22
  • 2012-12-15
  • 2016-09-03
相关资源
最近更新 更多