2010-06-30 133 views
0

我有一個形式如下圖所示:PHP進度條

第1頁:

<form name = "form1" method="post" action = "page2.php"> 
........ 
</form> 

使page2.php:

<?php 

For loop ... 
..... 
end 

?> 

現在我想有第1頁等進度條它可以顯示page2.php中for循環的完成進度。

告訴我我該怎麼做?我已經使用的進展,但我不知道如何實現的代碼爲它請不要告訴我任何進度條,

以下是我目前使用

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.progressbar.min.js"></script> 

$(document).ready(function() { 
$("#spaceused1").progressBar(); 
}); 
HTML: 

<span class="progressBar" id="spaceused1">25%</span> 

<a href="#" onclick="$('#spaceused1').progressBar(20);">20</a> 
<a href="#" onclick="$('#spaceused1').progressBar(40);">40</a> 
<a href="#" onclick="$('#spaceused1').progressBar(80);">80</a> 
代碼

當我點擊上面的鏈接時,它工作正常。但是,如何在page1上顯示它以顯示page2.php上for循環的進度?

請幫我一把。

回答

1

使page2.php:

<?php 

for(;;) { 
    //In each loop iteration, update your progress and store it in the session 
    $_SESSION['myFormProgress'] = myProgressCalculation(); 
} 

?> 

然後使用AJAX輪詢服務器,接收$_SESSION['myFormProgress']當前值,並相應地更新你的進度條。

正如Jonah Bron指出的,您還需要使用AJAX將您的表單提交到Page2.php。否則,您將無法繼續在頁面上運行JavaScript(以更新進度欄)。當for循環完成(並且進度條已滿)時,我懷疑您會希望將用戶重定向到可以看到結果的新頁面。

+0

什麼樣的價值它會發送回HTML表單或JavaScript函數? – fawad 2010-06-30 21:21:00

+0

既然你想填充進度條,一個百分比就足夠了。 'echo $ _SESSION ['myFormProgress']; //例如。返回0.27爲27%' – Dolph 2010-06-30 21:23:20

+0

因此,您的意思是我必須使用AJAX在頁面1和頁面2之間進行通信。頁面2將在for循環的每次迭代中將狀態發送到頁面1。這是正確的嗎? – fawad 2010-06-30 21:36:14

1

如果我正確理解您的問題,您需要使用Ajax提交表單。我不使用jQuery,所以我不知道如何用XMLHttpRequest實現進度條。

+0

感謝您的答覆,但這並不解決我的問題 – fawad 2010-06-30 21:15:01