表单上的多个按钮

时间:2010-11-08 01:26:04

标签: php html

我有一个清晰的按钮,我想绑定到一些PHP编码。如何检测是否按下了清除按钮。当用户按清除时,我将更新sql表以清除条目。但首先我需要知道何时按下按钮。

<input name="Reset1" type="reset" value="clear" />

6 个答案:

答案 0 :(得分:21)

您使用按钮名称检查表单中的postget数据:

<form action='' method='post'>
  <button type='submit' name='reset'>Clear</button>
  <button type='submit' name='submit'>Submit</button>
</form>

PHP(提交后):

if(isset($_POST['reset'])) { /* ...clear and reset stuff... */ }
else if(isset($_POST['submit']) { /* ...submit stuff... */ }

或者,您有两个具有相同名称的按钮,它们都提交您的表单,并if/else他们的值:

<form action='' method='post'>
  <button name='submit' value='0'>Clear</button>
  <button name='submit' value='1'>Submit</button>
  <button name='submit' value='2'>Something Else</button>
</form>

PHP(提交后):

if($_POST['submit']==0)      { /* ...clear and reset stuff... */ }
else if($_POST['submit']==1) { /* ...submit stuff... */ }
else if($_POST['submit']==2) { /* ...do something else... */ }

答案 1 :(得分:3)

解决方案来自:http://websistent.com/multiple-submit-buttons-in-php/

HTML:

<input type="submit" name="btn_submit" value="Button 1" />
<input type="submit" name="btn_submit" value="Button 2" />
<input type="submit" name="btn_submit" value="Button 3" />

PHP:

<?php
if($_REQUEST['btn_submit']=="Button 1")
{
print "You pressed Button 1";
}
else if($_REQUEST['btn_submit']=="Button 2")
{
print "You pressed Button 2";
}
else if($_REQUEST['btn_submit']=="Button 3")
{
print "You pressed Button 3";
}
?>

答案 2 :(得分:1)

将项目连接为您附加到触发AJAX请求的Javascript片段的按钮,或者使用提交输入。 (根据提交的值确定表单是已提交还是重置)

答案 3 :(得分:0)

您可以将ajax事件绑定到被单击的事件。如果您正在使用jQuery,则可以将ajax()函数绑定到其click事件。 ajax函数允许轻松传递变量,错误检查等。

你将ajax调用一个php文件,我们称之为reset_ajax.php,这将进行查询。

另一个选项是跟踪被点击的重置按钮,其中隐藏的输入在每次单击时都会更新,然后您可以在提交表单时在后端进行查询。

由您决定使用哪种方法。即使他们没有提交表格,第一个也有工作的优势。

答案 4 :(得分:0)

<form action="" method="post" >

    <input type="submit" name="btn_submit" value="Button 1" />
    <input type="submit" name="btn_submit" value="Button 2" />
    <input type="submit" name="btn_submit" value="Button 3" />
<form>
  

$ _ REQUEST中的变量是通过GET,POST和COOKIE提供给脚本的,您可以使用$ _POST代替,因为表单的方法是POST

<?php

    if (isset($_REQUEST['btn_submit'])) {

        switch ($_REQUEST['btn_submit']) {
           case "Button 1":
                 echo "You pressed Button 1";
                 break;
           case "Button 2":
                 print "You pressed Button 2";
                 break;
           case "Button 3":
                 print "You pressed Button 3";
                 break;
        }
    }
?>

答案 5 :(得分:0)

令人惊讶的是,没有涵盖formaction属性。您可以像这样使用它

<form method="post" action="/action/project/edit">
    ...
    <button type="submit">edit</button>
    <button type="submit" formaction="/action/project/delete">delete</button>
</form>

当然,这不使用javascript并且具有良好的浏览器支持。此路由(无双关语)的附加好处是不需要在服务器上附加if / then语句,因为同一路由不会用于两种不同的事情

参考 https://css-tricks.com/separate-form-submit-buttons-go-different-urls/