2009-07-03 32 views
0

我正在php/mysql中創建數據輸入表單。在那裏我添加了許多下拉菜單和自動完成的文本框,它們異步查詢數據庫並獲取數據。我想告訴某些類型的客戶端和服務器之間的交互是一直走。安迪的用戶,所以我把一個元素隱藏表單顯示基於AJAX請在多個頁面上等待

<div id="wait" style="background-color:white;position:absolute;top:240px;left:360px;width:70px;height:50px;visibility:hidden;border: 1px solid black;padding:20px;"> 
<img src="images/wait.gif" style="position:relative;top:0px;left:25px"><br /><br />Please wait... 
</div> 

,並在Ajax組件的方法handleHttpResponse我做了以下

if (http.readyState == 4) { 
    document.getElementById('wait').style.visibility = "hidden"; 
    alert('The server script has now completed'); 
} else { 
    document.getElementById('wait').style.visibility = "visible"; 
} 

上面的函數位於當前頁面中包含的腳本文件ajax.js中,以及每個需要ajax的頁面。

現在這個工作對我很好的一個文檔,但我有以下查詢

  • 如果我想有,只要在任何網頁上執行一個AJAX請求類似的操作,用戶必須是顯示消息「請隨同播放動畫一起等待」。如何重寫我的模塊,以便我不必在每一頁上放置DIV。我該怎麼辦?

    • 我想加入類似的功能,但它必須在頁面加載之前發生的,它應該顯示進度條,以及,我怎麼能去了解它

    • 說我目前的網頁利用此功能在3個位置同時顯示3個請等待消息嗎?

希望我的問題是非常明顯的。 謝謝

+0

你使用什麼服務器端語言/框架?大多數MVC框架都支持佈局,只替換實際的頁面內容。您可以在佈局中放置消息。根據您顯示消息的位置,您也只能顯示一次,然後等待所有請求都完成。 – Daff 2009-07-03 08:12:40

回答

0

有一種方法可以實現你正在嘗試做的事情。例如,如果您使用PHP,則可以將HTML放在.inc或.php文件中,並將其包含在任意位置,即使在多個頁面中也是如此。

  1. 所以,如果使用PHP,嘗試這樣的事情:

    <?php //inc_loader.php ?><div id="wait" style="background-color:white;position:absolute;top:240px;left:360px;width:70px;height:50px;visibility:hidden;border: 1px solid black;padding:20px;"> 
    <img src="images/wait.gif" style="position:relative;top:0px;left:25px"><br /><br />Please wait... 
    </div> 
    

現在只是包括上述文件,無論你想,像:

<?php include("inc_loader.php"); ?> 

代碼包括可能會根據您使用的服務器端語言而有所不同。

2.也不建議在同一文檔的多個位置使用相同的代碼,因爲您使用的是id =「wait」。一個id在文檔中應該是唯一的,所以在多個地方使用它並不具有它的含義。如果你想避免重複,那麼你可以嘗試使用類,即class =「wait」,如果這可以幫助你。

讓我們知道是否幫助你。