2016-05-09 94 views
4

一個搜索功能,我在那裏的功能是這樣定義的搜索框:GET和POST在PHP

if(isset($_POST['search'])) 
{ 
    $orgname= $_POST['search']; 
...... 
} 

的POST搜索是通過表單來。我想知道,有沒有辦法讓這個函數通過鏈接接受一個獲取值呢?例如,如果我使用這樣的鏈接:mysite/page?search=value,我可以使用$orgname=$_GET['search']來觸發該功能,而無需提交表單嗎?所以會有兩種方法從函數中加載數據,一種是通過提交表單,另一種是通過鏈接,如上所述?這可能嗎?我試圖這樣做,因爲我在這個頁面上有另一個選項卡,我有一個更新按鈕,用戶可以在更改表單數據後提交表單。但是在提交表單後,更新函數可以工作,但頁面會重新加載並顯示一個空白表單。我想在表單提交時顯示更新的數據。

+0

你可以使用GET方法,與

,這是默認的行爲=> – Loenix

+1

使用$ _REQUEST超全球 –

+0

@MineshPatel,是$ _REQUEST使窗體提交後,再次搜索該值的最佳方法?因爲現在,當我提交表單時,頁面刷新會擦除數據,因此用戶必須再次手動鍵入搜索值並搜索,以查看更新的數據。或者有沒有辦法加載更新的數據,而不會離開頁面,在表單提交? –

回答

2

如果要使$_GET$_POST具有相同的行爲,可以使用超全局的$_REQUEST

如果你想知道你的數據是從哪裏來的,(羯羊它是一個GET或POST請求),你可以簡單地檢查該參數是否存在兩個陣列上:

if(isset($_GET['search']) 
{ 
    //We have a GET request 
} 
else if(isset($_POST['search']) 
{ 
    //We have a POST request 
} 
else 
{ 
    //Nothing found 
} 
+0

在提交表單之後,'$ _REQUEST'是使頁面再次搜索值的最佳方式嗎?因爲現在,當我提交表單時,頁面刷新會擦除數據,因此用戶必須再次手動鍵入搜索值並搜索,以查看更新的數據。或者有沒有辦法加載更新的數據,而不會離開頁面,在表單提交? –

+0

如果你想異步搜索,那麼你需要與AJAX – dimlucas

+0

異步運行腳本,如果使用if(isset($ _ GET ['search'])''工作 –

2

您可以使用$_REQUEST

$_REQUEST - HTTP請求變量

的關聯數組默認包含$_GET$_POST$_COOKIE內容。