Two submit buttons in one form

前端 未结 19 2048
不思量自难忘°
不思量自难忘° 2020-11-21 23:23

I have two submit buttons in a form. How do I determine which one was hit serverside?

相关标签:
19条回答
  • 2020-11-22 00:02

    I think you should be able to read the name/value in your GET array. I think that the button that wasn't clicked wont appear in that list.

    0 讨论(0)
  • 2020-11-22 00:06

    Use the formaction HTML attribute (5th line):

    <form action="/action_page.php" method="get">
        First name: <input type="text" name="fname"><br>
        Last name: <input type="text" name="lname"><br>
        <button type="submit">Submit</button><br>
        <button type="submit" formaction="/action_page2.php">Submit to another page</button>
    </form>
    
    0 讨论(0)
  • 2020-11-22 00:06

    The best way to deal with multiple submit button is using switch case in server script

    <form action="demo_form.php" method="get">
    
    Choose your favorite subject:
    
    <button name="subject" type="submit" value="html">HTML</button>
    <button name="subject" type="submit" value="css">CSS</button>
    <button name="subject" type="submit" value="javascript">Java Script</button>
    <button name="subject" type="submit" value="jquery">jQuery</button>
    
    </form>
    

    server code/server script - where you are submitting the form:

    demo_form.php

    <?php
    
    switch($_REQUEST['subject']) {
    
        case 'html': //action for html here
                    break;
    
        case 'css': //action for css here
                    break;
    
        case 'javascript': //action for javascript here
                            break;
    
        case 'jquery': //action for jquery here
                        break;
    }
    
    ?>
    

    Source: W3Schools.com

    0 讨论(0)
  • 2020-11-22 00:06

    You formaction for multiple submit button in one form example

     <input type="submit" name="" class="btn action_bg btn-sm loadGif" value="Add Address" title="" formaction="/addAddress"> 
     <input type="submit" name="" class="btn action_bg btn-sm loadGif" value="update Address" title="" formaction="/updateAddress"> 
    
    0 讨论(0)
  • 2020-11-22 00:07

    Since you didn't specify what server-side scripting method you're using, I'll give you an example that works for Python, using CherryPy (although it may be useful for other contexts, too):

    <button type="submit" name="register">Create a new account</button>
    <button type="submit" name="login">Log into your account</button>
    

    Rather than using the value to determine which button was pressed, you can use the name (with the <button> tag instead of <input>). That way, if your buttons happen to have the same text, it won't cause problems. The names of all form items, including buttons, are sent as part of the URL. In CherryPy, each of those is an argument for a method that does the server-side code. So, if your method just has **kwargs for its parameter list (instead of tediously typing out every single name of each form item) then you can check to see which button was pressed like this:

    if "register" in kwargs:
        pass #Do the register code
    elif "login" in kwargs:
        pass #Do the login code
    
    0 讨论(0)
  • 2020-11-22 00:08
    <form>
        <input type="submit" value="Submit to a" formaction="/submit/a">
        <input type="submit" value="submit to b" formaction="/submit/b">    
    </form>
    
    0 讨论(0)
提交回复
热议问题