2010-05-23 56 views
5

我有這個傳統的提交按鈕,提交表單是這樣的:如何檢查表單是否通過javascript提交?

<form method="post" id="form_submit"> 
... 
<input class="button" type="submit" name="Submit" value="Submit"> 
</form> 

我檢查是否正在使用此點擊提交按鈕:

if(isset($_POST['Submit'])){ 
    //update DB 
} 

現在我有一個使用jquery提交鏈接:

<a href="#" onclick="publish(); return false;">Submit</a> 

JS代碼:

$("#form_submit").submit(); 

因爲我使用javascript提交表單,因此在這裏使用if(isset($_POST['Submit']))的替代方法是什麼?

+0

是否經由提交AJAX /一些插件,或者你想知道'.submit()'被調用?如果您通過javascript提交表單,否則將出現的按鈕將不在發佈的數據中。 – 2010-05-23 12:02:20

+0

我正在開發Facebook應用程序,並且在調用.submit()之前調用FB彈出窗口,感謝大家的幫助,Sarfraz正確地解決了這個問題。隱藏的輸入是一個不錯的選擇:) – SteD 2010-05-23 12:08:32

回答

5

如果我理解正確的話,試試這個:

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
// your code......... 
} 
+0

+1不錯,簡單。 – 2010-05-23 12:07:14

+0

謝謝你!這正是我需要的。 – SteD 2010-05-23 12:09:44

+0

@SteD:不客氣:) – Sarfraz 2010-05-23 12:11:56

0

最好的解決辦法是「不要做」。如果你想提交一個表單,然後使用提交按鈕(不要把它作爲點擊超鏈接到頁面頂部的副作用)。任何你想運行的JavaScript都可以在表單的submit事件中處理。

如果您確實想將其作爲副作用,請檢查是否存在您知道將設置的其他字段。如果你喜歡,你可以添加一個隱藏字段,以確保有一個給定的名稱/值組合。

1

如果我正確理解您的問題,您可以簡單地將輸入類型更改爲隱藏。

<form method="post" id="form_submit"> 
... 
<input type="hidden" name="Submit"> 
</form> 

$ _POST ['Submit']變量將被定義。

4

你應該隱藏的輸入<input type="hidden" name="formsubmit" value="yes" />添加到總是會得到提交表單,再檢查所代替按鈕(僅在點擊它被提交...