【问题标题】:multiple buttons on a form表单上的多个按钮
【发布时间】:2019-12-08 17:13:58
【问题描述】:

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

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

【问题讨论】:

  • 当他们点击清除时,除了进行查询之外,还会发生什么事情吗?例如。是否有消息或表单提交?

标签: php html


【解决方案1】:

您使用按钮名称检查表单中的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... */ }

【讨论】:

  • 我从来不知道有一个按钮标签很酷。感谢您的帮助。
  • 不用担心。要记住的一件事,如果你不为那个标签说type='button',它将自动成为submit 按钮!
【解决方案2】:

解决方案来自: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";
}
?>

【讨论】:

    【解决方案3】:

    要么将项目作为按钮连接到触发 AJAX 请求的 Javascript sn-p,要么使用提交输入。 (根据提交值判断表单是提交还是重置)

    【讨论】:

      【解决方案4】:
      <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】:

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

        您将通过 ajax 调用一个 php 文件,我们称之为 reset_ajax.php,它将进行查询。

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

        取决于您要使用哪种方法。第一个的优点是即使他们不提交表单也可以工作。

        【讨论】:

          【解决方案6】:

          令人惊讶的是,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/

          【讨论】:

            猜你喜欢
            • 2020-11-19
            • 1970-01-01
            • 2019-03-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-04-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多