目前我正在一個HTML頁面上,我可以上傳一個Excel,並在指定的日期範圍內從數據庫獲取數據。一個提交按鈕將從Excel和數據庫中提取數據,並比較兩個列表中的值並顯示衝突值。我需要添加另一個提交按鈕,用戶可以在其中設置如何爲同一表單中的衝突值完成映射。在PHP中訪問兩個提交按鈕的單個表單中提交多個按鈕
如何使用兩個提交按鈕同時使用PHP中的第二個提交按鈕訪問的第一個提交按鈕中發佈的數據?
目前我正在一個HTML頁面上,我可以上傳一個Excel,並在指定的日期範圍內從數據庫獲取數據。一個提交按鈕將從Excel和數據庫中提取數據,並比較兩個列表中的值並顯示衝突值。我需要添加另一個提交按鈕,用戶可以在其中設置如何爲同一表單中的衝突值完成映射。在PHP中訪問兩個提交按鈕的單個表單中提交多個按鈕
如何使用兩個提交按鈕同時使用PHP中的第二個提交按鈕訪問的第一個提交按鈕中發佈的數據?
只要提交按鈕被放置在同一個form
元素內,點擊其中任何一個都會提交它們被放置在。
用的形式,形式相同的所有字段將被提交。
但是,您可能想知道點擊了哪個提交按鈕以不同的方式做事。
您可以添加name
屬性來指定哪個提交按鈕被點擊。
<input type="submit" name="submit1">
<input type="submit" name="submit2">
假設這種形式與POST方法提交,您可以檢查哪些提交按鈕,用下面的例子中點擊。
$importData = isset($_POST["submit1"]);
$mapSettings = isset($_POST["submit2"]);
所以,你可以通過將不同形式的所有字段到同一form
元素實現這一目標。儘管點擊了哪個提交按鈕,表單元素中的所有字段都將被提交。
然後,您可以使用上面的布爾結果來確定要執行的操作。
到目前爲止,我已經看到了這種情況的最佳答案是:
<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
刪除了一些額外的問號。 – rlandster