請問如下的表單,
在點擊按鈕 A 時,傳送資料到 A.php,
而點擊按鈕 B 時,傳送資料到 B.php,
有辦法做到這樣嗎?
<form action="" method="POST">
<input ... />
<input ... />
<input ... />
<input type="submit" value="按鈕 A" />
<input type="submit" value="按鈕 B" />
</form>
以下是ChatGPT 回答, 你可以參考看看
在 PHP 表單中,直接在 HTML 表單中設定兩個 action 是不可能的。HTML 表單標籤只允許一個 action 屬性。因此,如果你希望在一個表單中有兩個不同的提交動作並分別傳送到不同的網址,可以考慮以下幾種方法來實現:
方法一:使用 JavaScript
可以透過 JavaScript 改變表單的 action 屬性,然後根據需要提交到不同的網址。
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>多重表單提交</title>
<script>
function submitForm(action) {
var form = document.getElementById('myForm');
form.action = action;
form.submit();
}
</script>
</head>
<body>
<form id="myForm" method="post">
<input type="text" name="input1" placeholder="輸入內容">
<button type="button" onclick="submitForm('http://example.com/action1')">提交到網址1</button>
<button type="button" onclick="submitForm('http://example.com/action2')">提交到網址2</button>
</form>
</body>
</html>
在這個範例中,有兩個按鈕,分別觸發 submitForm 函數並將表單提交到不同的網址。
方法二:使用不同的表單
如果不能使用 JavaScript,可以考慮使用兩個不同的表單,這樣每個表單都有自己的 action 屬性。
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>多重表單提交</title>
</head>
<body>
<form action="http://example.com/action1" method="post">
<input type="text" name="input1" placeholder="輸入內容">
<button type="submit">提交到網址1</button>
</form>
<form action="http://example.com/action2" method="post">
<input type="text" name="input2" placeholder="輸入內容">
<button type="submit">提交到網址2</button>
</form>
</body>
</html>
每個表單都有自己的 action 屬性,並且可以提交到不同的網址。
方法三:使用一個隱藏的輸入欄位
使用隱藏的輸入欄位來傳遞不同的動作,並在伺服器端處理不同的動作。
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<title>多重表單提交</title>
<script>
function submitForm(action) {
document.getElementById('formAction').value = action;
document.getElementById('myForm').submit();
}
</script>
</head>
<body>
<form id="myForm" method="post" action="handle_form.php">
<input type="hidden" id="formAction" name="formAction" value="">
<input type="text" name="input1" placeholder="輸入內容">
<button type="button" onclick="submitForm('action1')">提交到動作1</button>
<button type="button" onclick="submitForm('action2')">提交到動作2</button>
</form>
</body>
</html>
在這個例子中,表單提交到同一個 PHP 腳本 handle_form.php,在伺服器端根據 formAction 的值來判斷要執行的動作。
伺服器端 handle_form.php 的範例:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$action = $_POST['formAction'];
if ($action == 'action1') {
// 執行動作1的邏輯
header("Location: http://example.com/action1");
} elseif ($action == 'action2') {
// 執行動作2的邏輯
header("Location: http://example.com/action2");
} else {
// 處理未知的動作
echo "未知的動作";
}
}
?>
這樣的方式可以讓你根據不同的按鈕提交到不同的網址。
基本上JS應該更加詳細寫法~
我弄個邏輯~你自己改看看
<form id="form1" action="" method="POST">
<input ... />
<input ... />
<input ... />
<input type="submit" value="按鈕 A" onclick="form1.action='A.php';" />
<input type="submit" value="按鈕 B" onclick="form1.action='B.php';" />
</form>