iT邦幫忙

0

表單如果設置 2 個 submit 按鈕,可以傳送資料到不同的網址嗎?

  • 分享至 

  • xImage

請問如下的表單,
在點擊按鈕 A 時,傳送資料到 A.php,
而點擊按鈕 B 時,傳送資料到 B.php,
有辦法做到這樣嗎?

<form action="" method="POST">
    <input ... />
    <input ... />
    <input ... />
    <input type="submit" value="按鈕 A" />
    <input type="submit" value="按鈕 B" />
</form>
看更多先前的討論...收起先前的討論...
厚厚 iT邦新手 1 級 ‧ 2024-05-30 09:03:39 檢舉
你在submit的程式去判斷(IF)是哪個按鈕的值(A或B)就好啦
froce iT邦大師 1 級 ‧ 2024-05-30 10:23:25 檢舉
1. 理論上同一個form,欄位都相同,不會需要到兩個submit
2. 如果有選擇性欄位要處理,建議後端在同一頁面處理
3. 真的有這種特殊需求,用前端js去做。標準的html submit做不到。

後來看了一下,你的這個需求應該還是上一個問題吧...
去看我上一個回你的,請採用2的方式去處理,不是固定路由就一定要吐同樣格式的 html 回去啊
一樣ajax各發各的
samjam iT邦新手 3 級 ‧ 2024-05-31 10:29:01 檢舉
謝謝大家的回覆,問題已解決囉
chuway iT邦新手 2 級 ‧ 2024-06-01 17:20:36 檢舉
oncommit 時傳遞參數觸發JS,再用一個Javascript送到不同的路徑
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
shootingstar
iT邦新手 4 級 ‧ 2024-05-31 07:43:47
最佳解答

formaction
input
https://ithelp.ithome.com.tw/upload/images/20240531/2014960394k5MtJ1hq.jpg

samjam iT邦新手 3 級 ‧ 2024-05-31 10:31:29 檢舉

謝謝您的回覆,您的回答解決我的問題了

2
Kailis
iT邦研究生 1 級 ‧ 2024-05-30 09:10:15

以下是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 "未知的動作";
    }
}
?>

這樣的方式可以讓你根據不同的按鈕提交到不同的網址。

obarisk iT邦研究生 2 級 ‧ 2024-05-31 07:42:32 檢舉

gpt 用字也這麼不精準哦...
php 表單

samjam iT邦新手 3 級 ‧ 2024-05-31 10:29:39 檢舉

謝謝大家的回覆,問題已解決囉

4
純真的人
iT邦大師 1 級 ‧ 2024-05-30 09:10:55

基本上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>
samjam iT邦新手 3 級 ‧ 2024-05-31 10:32:13 檢舉

謝謝您的回答

我要發表回答

立即登入回答