2016-12-05 134 views
1

目前我正在一個HTML頁面上,我可以上傳一個Excel,並在指定的日期範圍內從數據庫獲取數據。一個提交按鈕將從Excel和數據庫中提取數據,並比較兩個列表中的值並顯示衝突值。我需要添加另一個提交按鈕,用戶可以在其中設置如何爲同一表單中的衝突值完成映射。在PHP中訪問兩個提交按鈕的單個表單中提交多個按鈕

如何使用兩個提交按鈕同時使用PHP中的第二個提交按鈕訪問的第一個提交按鈕中發佈的數據?

+0

刪除了一些額外的問號。 – rlandster

回答

0

只要提交按鈕被放置在同一個form元素內,點擊其中任何一個都會提交它們被放置在。

用的形式,形式相同的所有字段將被提交。

但是,您可能想知道點擊了哪個提交按鈕以不同的方式做事。

您可以添加name屬性來指定哪個提交按鈕被點擊。

<input type="submit" name="submit1"> 
<input type="submit" name="submit2"> 

假設這種形式與POST方法提交,您可以檢查哪些提交按鈕,用下面的例子中點擊。

$importData = isset($_POST["submit1"]); 
$mapSettings = isset($_POST["submit2"]); 

所以,你可以通過將不同形式的所有字段到同一form元素實現這一目標。儘管點擊了哪個提交按鈕,表單元素中的所有字段都將被提交。

然後,您可以使用上面的布爾結果來確定要執行的操作。

0

到目前爲止,我已經看到了這種情況的最佳答案是:

<input type="submit" name="action" value="Update" /> 
<input type="submit" name="action" value="Delete" /> 

然後在代碼檢查,看看這是觸發:

if ($_POST['action'] == 'Update') { 
    //action for update here 
} else if ($_POST['action'] == 'Delete') { 
    //action for delete 
} else { 
    //invalid action! 
} 

與唯一的問題是你配合您對輸入內文本的邏輯。你也可以給每一個唯一的名稱,只是檢查$ _ POST該輸入的存在:

<input type="submit" name="update_button" value="Update" /> 
<input type="submit" name="delete_button" value="Delete" /> 

並在代碼:

if (isset($_POST['update_button'])) { 
    //update action 
} else if (isset($_POST['delete_button'])) { 
    //delete action 
} else { 
    //no button pressed 
} 

有一個很好的一篇關於這個在這裏: Two submit buttons in one form

相關問題