2014-09-23 43 views
0

我試圖在html div中加載php文件的輸出。而我與jQuery的($('div').load(url_here))方法試了一下,它的正常工作,但我的PHP文件如下:根據php文件的輸出動態加載html

<?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相同(即每秒載入一行,因此在第1秒時它應該加載第1行,在第2秒時它應該添加第2行等等)。那麼,有可能嗎? (P.S-我是這個動態網頁的初學者)

+0

你應該學會所以關於ajax – worldask 2014-09-23 16:56:02

+0

你想做什麼是不可能的,沒有JavaScript。 – 2014-09-23 16:56:24

回答

0

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> 
+0

這就是用戶想要的我猜,他希望php每1秒加載到10秒 – void 2014-09-23 17:00:22

+0

是的,現在我可以看到你的完整代碼。爲OP添加一些解釋會很有幫助。 – DontVoteMeDown 2014-09-23 17:01:20

+0

您的解決方案運行良好.and @DontVoteMeDown的解決方案也運行良好。 – 2014-09-23 17:11:56

1

爲了在每分鐘得到結果,你必須每分鐘打開一個ajax請求來控制javascript中的時間,而不是在php中。

嘗試:

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

,並清除for環和PHP中的sleep()

UPDATE

爲了保證結果的歷史,嘗試了這一點:

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

無法投票(目前還沒有15個聲望)。但是,您的兩個解決方案都有效。只是一個問題,這兩種解決方案都提供相同的輸出,一次又一次地替換同一行,是否有可能在新行中產生新的結果? – 2014-09-23 17:14:32

+1

@JigarPatel不用擔心投票,老兄。我很高興這對你有所幫助。查看我的最新問題。 – DontVoteMeDown 2014-09-23 18:53:30

+0

這工作! Gret @DontVoteMeDown,簡單而有用的邏輯:D – 2014-09-24 10:34:11