簡體   English   中英

表單中的多個提交按鈕

[英]Multiple submit button in a form

嘿,我是網絡編程的新手。 我過去幾天一直在學習PHP,但我堅持一件事。

我的代碼中有一個表單標簽,它有兩個提交按鈕來操作數據。 由於我的表單標簽上只能有一個操作定義,因此它只能引導我訪問一個頁面。 (不太確定)

現在,根據單擊表單上的按鈕,我想加載一個不同的頁面。 一種方法是檢查在if-else構造中單擊的按鈕,然后在分支中使用echo'...'並顯示它就像是不同的頁面。 但出於某種原因,這似乎並不合適。 有人可以給我一個更好的解決方案嗎? 謝謝。

一種方法是使用Javascript根據單擊的控件切換表單的操作。 以下示例使用jQuery庫:

<form id="theForm" action="foo.php">
...
    <input id="first" type="submit"/>
    <input id="second" type="submit"/>
</form>​

$(document).ready(function() {
    $("#theForm input").click(function(e) {
        e.preventDefault();
        if(e.target.id == 'first') {
            $("#theForm").attr("action", "somePage.php");
        } else {
            $("#theForm").attr("action", "anotherPage.php");
        }
        alert($("#theForm").attr("action"));
        $("#theForm").submit(); 
    });
​});​

在這里演示: http//jsfiddle.net/CMEqC/2/

但出於某種原因,這似乎並不合適。

這是錯誤的假設。
任何其他解決方案都會更糟糕。

檢查服務器端是唯一可靠的解決方案。
然而,分支中的echo不是必需的。 還有很多其他方法。
使用include語句是最明顯的一個。

僅作為參考... int HTML5按鈕可以重新定義表單的動作,方法,類型等.http://w3schools.com/html5/tag_button.asp對我來說,這是控制表單的好方法:)

添加基於@ karim79的另一個解決方案,因為它用PHP標記:

<form id="theForm" action="foo.php">
...
    <input id="first" name="button" value="first" type="submit"/>
    <input id="second" name="button" value="second" type="submit"/>
</form>​

在你的foo.php中,做這樣的事情:

<?php
$submit = isset($_GET['button']) ? trim($_GET['button']) : '';

if($submit == 'first')
{
   header('Location: somePage.php');
}
else if($submit == 'second')
{
   header('Location: anotherPage.php');
}
?>

摘要:為了能夠讀取您的按鈕(2個提交按鈕),您需要在每個按鈕上添加name 為簡單起見,只需在兩者上使用相同的名稱即可。 然后,添加不同的value 接下來,您需要通過檢查該特定按鈕上發送的值來了解正在單擊的按鈕

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM