2012-08-13 53 views
23

目前,我有一個HTML表單,用戶可以在其中輸入文章的標題和文本。當提交時,他們會看到兩個按鈕。一種是「保存」他們的文章而不發佈它,另一種是「發佈」文章並將其公諸於衆。如何使用兩個提交按鈕並區分哪一個用於提交表單?

我正在使用PHP,我想弄清楚如何判斷使用哪個按鈕,以便在數據庫中存儲相應的對應值。

<td> 
<input type="submit" class="noborder" id="save" value="" alt="Save" tabindex="4" /> 
</td> 
<td> 
<input type="submit" class="noborder" id="publish" value="" alt="Publish" tabindex="5" /> 
</td> 

也許應該提到這較早,但因爲按鈕是一個圖像,我不能指定按鍵值,因此文本將體現在它上面。

回答

48

給予每個input a name屬性。只有點擊的inputname屬性將被髮送到服務器。

<input type="submit" name="publish" value="Publish"> 
<input type="submit" name="save" value="Save"> 

然後

<?php 
    if (isset($_POST['publish'])) { 
     # Publish-button was clicked 
    } 
    elseif (isset($_POST['save'])) { 
     # Save-button was clicked 
    } 
?> 

編輯:改變value屬性alt。不確定這是圖像按鈕的最佳方法,但您不想使用input[type=image]的任何特定原因?

編輯:由於這一直保持upvotes我繼續前進,並改變了奇怪的alt/value代碼爲真正的提交輸入。我相信最初的問題需要某種圖像按鈕,但現在有更好的方法來實現,而不是使用input[type=image]

+0

我只是試着用這個方法!empty()。現在你提到它,isset()可能會起作用。編輯:它確實工作。感謝您的建議! – fvgs 2012-08-13 07:05:56

+0

我不記得爲什麼我選擇使用按鈕而不是圖像,但我相信這是因爲我無法將懸停應用於圖像提交。 – fvgs 2012-08-13 07:14:33

+0

採用多個提交按鈕的完美簡單的解決方案。 – commnux 2017-03-18 23:40:24

7

給出名稱和值對那些提交類似按鈕:

<td> 
    <input type="submit" name='mybutton' class="noborder" id="save" value="save" alt="Save" tabindex="4" /> 
    </td> 
    <td> 
    <input type="submit" name='mybutton' class="noborder" id="publish" value="publish" alt="Publish" tabindex="5" /> 
    </td> 

,然後在你的PHP腳本,你可以檢查

if($_POST['mybutton'] == 'save') 
{ 
    ///do save processing 
} 
elseif($_POST['mybutton'] == 'publish') 
{ 
    ///do publish processing here 
} 
+1

我無法給出按鈕值,因爲它們是圖像。如果我分配值,那麼文本將顯示在我的圖像上。 – fvgs 2012-08-13 07:02:10

+1

如果是這種情況,那麼您可以使用@powerbuoy建議的具有不同名稱的2個不同bussts。然後在php腳本中檢查哪個按鈕已被提交。 – 2012-08-13 07:04:13

+0

我不認爲這也可以,他說他不能把價值放在按鈕上,因爲它們是圖像。 – WatsMyName 2012-08-13 07:08:24

1

您可以按如下方式使用它,

<td> 

<input type="submit" name="save" class="noborder" id="save" value="Save" alt="Save" 
tabindex="4" /> 

</td> 

<td> 

<input type="submit" name="publish" class="noborder" id="publish" value="Publish" 
alt="Publish" tabindex="5" /> 

</td> 

而在PHP中,

<?php 
if($_POST['save']) 
{ 
    //Save Code 
} 
else if($_POST['publish']) 
{ 
    //Publish Code 
} 
?> 
2

如果你不能把值放在按鈕上。我只是粗略的解決方案。把一個隱藏的領域。並且在提交之前點擊其中一個按鈕時,如果點擊第一個按鈕時填充隱藏字段的值如同1,如果點擊第二個按鈕則填充2。並在提交頁面檢查此隱藏字段的值以確定哪個被點擊。

相關問題