2012-07-27 186 views
0

我有一個網站兩個類似的形式,我想合併成一個形式兩個提交按鈕。他們使用大部分相同的數據。一種形式兩個提交按鈕

第一種形式使用GET將數據發送到另一臺服務器。第二種形式通過電子郵件發送。我想強烈鼓勵網站用戶在嘗試選項二之前使用選項一。

我知道如何使用JavaScript做到這一點,但不是在降低一個很好的方式。任何其他方式有兩個提交選項?或者如何完成這一點的其他想法?謝謝!

+0

你可以從字面上使用兩個提交按鈕,具有不同的名稱或值,並根據與您定義的按鈕相匹配的$ _POST變量檢查您想要執行的操作。 – 2012-07-27 20:55:44

+1

爲什麼不只有一個提交按鈕,然後有一些單選按鈕供用戶選擇?然後在服務器端處理它。兩個提交按鈕可能會讓訪問者感到困惑。 – j08691 2012-07-27 20:55:57

+0

很多人都建議在表單中使用下拉/收音機,所以我想我應該提供更多的細節。表格是一個圖書館。第一種形式是查看圖書館是否有物品,第二種形式是給圖書管理員發郵件並要求她訂購。人們一直在跳過第一種形式,這就是爲什麼我想合併它們。我的計劃是將第一個提交按鈕設置爲「在提交請求之前請先檢查此處」。我認爲尼古拉的解決方案應該爲此工作? – 2012-07-28 13:48:25

回答

-1

您可以創建兩個提交按鈕,並給他們同樣的name但不同value

<input type="submit" name="submit" value="Server"> 
<input type="submit" name="submit" value="Email"> 

然後你就可以檢查$_GET['submit']$_POST['submit'](取決於form method)來查看使用了哪個提交。

2

雪盲提供了良好的解決方案,但你不能確定哪個按鈕被點擊。
按鈕必須有不同的名稱,不一樣。

例子:

<input type="submit" name="server" value="Server" /> 
<input type="submit" name="email" value="Email" /> 

<?php 

if(isset($_GET['server'])) 
{ 
    // Send to another server 
} 
else if(isset($_GET['email'])) 
{ 
    // Send to email 
} 
else die("None of buttons was clicked."); 

?> 

此外,如果您有兩個部分(服務器和電子郵件)相同的代碼,你可以做到以下幾點:

if(isset($_GET['server']) || isset($_GET['email'])) 
{ 
    // Do something common to both methods 
    if(isset($_GET['server'])) 
    { 
     // Send to server 
    } 
    else 
    { 
     // Send to email 
    } 
} 




比較好的解決辦法,在我看來,是隻能用1個提交按鈕+一個下拉菜單選擇方法。

<select name="sendMethod"> 
    <option value="" disabled>Choose sending method...</option> 
    <option value="server">Send to another server</option> 
    <option value="email">Send to e-mail</option> 
</select> 
0

像大家說的使用複選框/單選按鈕。 ,並設置使用GET作爲默認選項

的一個,如果你不想使用JavaScript你總是可以得到的價值和複選框/收音機和檢查用戶選擇