2013-04-04 50 views
1

我有一個搜索框,在用戶點擊提交按鈕的同時加載結果頁面時,我想顯示某種進度指示器。這個簡單的我能找到的是:如何在頁面加載後繼續檢查PHP條件

while ($something == true) { 
    // Echo an extra dot, and flush the buffers 
    // to ensure it gets displayed. 
    echo ' .'; 
    flush(); 

    // Now sleep for 1 second and check again: 
    sleep(1); 
} 

我會想象$的東西應該是簡單的用戶是否已經提交搜索表單呢。問題在於上面的PHP代碼不會知道,因爲頁面已經完成加載。

如何讓PHP只在用戶提交搜索表單後才能執行?

回答

3

你不能。你需要使用JavaScript(也可能是AJAX與服務器端代碼交互)

1

PHP是一種服務器端語言,所以它無法看到瀏覽器中發生了什麼。我只會迴應瀏覽器發出的請求。有兩種方法可以實現我認爲你以後的目標。

阿賈克斯方式:
有某種的現場反饋,您將需要一個客戶端的語言,至極會的JavaScript。我建議你看看jQuery,這是一個JavaScript庫,它很容易理解。更多specificly你也將需要在$.ajax方法和.submit事件probabaly

PHP的方式:
你也可以有你的形式提交給同一個PHP頁面的搜索表單,然後檢測羯羊形式已經通過檢查表單變量是否存在提交。事情是這樣的:

if (array_key_exists('search', $_REQUEST) { 
// the form has been submitted 
} 
else { 
// the form is not yet submitted 
} 

即假設的搜索框表單的名稱爲「搜索」

0

使用jQuery:

$('#submit').click(function(e)){ 
    e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "path/to/php/action", 
     dataType: "json" 
    }).done(function(data){ 
     while(data.action == 'waiting'){ 
      $('.somePageClass').html('<p>...</p>'); 
     }else{ 
      $('.somePageClass').html('your results'); 
     } 
    }); 
}); 

類似的東西,使用Ajax調用PHP函數,你的php函數將不得不檢查你是否在等待或完成並返回data.action。

這可能不完全正確,但它是一個嘗試(至少在正確的方向)。

+0

URL參數是什麼?我沒有其他頁面正在執行腳本。這只是簡單地檢查點擊提交按鈕。路徑是什麼?我認爲這就是我有點失落......謝謝! – devirkahan 2013-04-15 21:47:32

相關問題