2010-07-16 39 views
1

我正在調查的是: -如何在PHP中更新時顯示進度消息?

我有一個搜索頁面說索引頁。並且動作文件是search.php。當我開始查詢時,search.php將開始處理我搜索的內容。

的search.php

  1. 結構,它使用$ _GET函數來檢索索引頁查詢。

  2. 首先它會在MySQL數據庫中搜索。
  3. 如果是,則顯示來自MySQL數據庫的結果。
  4. IF空然後執行過程中得到的結果進行查詢,並插入到MySQL數據庫

我需要的是如果查詢結果不是在數據庫中,那麼它應該顯示進度消息說「請稍候我們第一次遇到此查詢,因此我們正在更新我們的數據庫「或其他適合的東西。

我該如何在PHP?

回答

2

這將是使用ajax請求的另一個很好的選擇。你會加載基本頁面,然後在加載完成後觸發ajax請求。然後顯示一個消息,如果有在遊戲中的任何等待狀態,然後用搜索結果替換郵件...

吉姆

+0

嗨吉姆其實我有一個艱難的時間來集成Ajax和PHP。對我來說這很困難,就像我之前說過的,我不熟悉Ajax和JavaScript中的某些區域。我如何通過PHP啓動Ajax請求?任何樣本...實際上我可以從互聯網上獲取大量示例腳本,但主要部分是兩者之間的集成。 – mathew 2010-07-16 10:58:41

+0

mathew - 這個小例子似乎涵蓋了基本和信息性的一切:http://php4every1.com/tutorials/jquery-ajax-tutorial/ 或http://www.queness.com/post/328/ a-simple-ajax-driven-website-with-jqueryphp – 2010-07-16 11:10:42

+0

你不會從PHP發出Ajax請求 - 這是JavaScript中的一個調用,它將請求服務器上的PHP文件。只要你小心,吉姆的回答就可以正常工作。 – 2010-07-16 11:13:15

0

使用AJAX進行異步通信。

1

正如其他人所說的,使用AJAX來輪詢服務器,並檢查搜索已經完成了。但是,您仍然需要「結束」第一個請求併產生搜索處理代碼,以便用戶的瀏覽器不僅僅是等待數據。

在服務器上,你可以產卵,從這樣的請求過程中斷開的過程:

exec('nohup /path/to/script.php > /dev/null &'); 

你可能會需要傳遞一些參數,指示做搜索的腳本。但通過這樣做,您不必擔心瀏覽器超時。