如何使用两个提交按钮,并区分用于提交表单的按钮?

2022-08-30 11:00:03

目前,我有一个HTML表单,用户将在其中输入文章的标题和文本。当需要提交时,它们会显示两个按钮。一种是“保存”他们的文章而不发布,另一种是“发布”文章并将其公开。

我正在使用PHP,并且我正在尝试弄清楚如何判断使用了哪个按钮,以便在数据库中存储适当的相应值。

<td>
<input type="submit" class="noborder" id="save" value="" alt="Save" tabindex="4" />
</td>
<td>
<input type="submit" class="noborder" id="publish" value="" alt="Publish" tabindex="5" />
</td>

可能应该之前提到这一点,但我无法分配按钮值,因为按钮是图像,所以文本将显示在其上方。


答案 1

为每个属性指定一个属性。只有被点击的属性才会被发送到服务器。inputnameinputname

<input type="submit" name="publish" value="Publish">
<input type="submit" name="save" value="Save">

然后

<?php
    if (isset($_POST['publish'])) {
        # Publish-button was clicked
    }
    elseif (isset($_POST['save'])) {
        # Save-button was clicked
    }
?>

编辑:将属性更改为alt。不确定这是图像按钮的最佳方法,但是,您不想使用输入[type=image]的任何特定原因?

编辑:由于这不断获得赞成票,我继续将奇怪的/代码更改为真正的提交输入。我相信最初的问题要求某种图像按钮,但是现在有更好的方法来实现这一目标,而不是使用 。altvalueinput[type=image]


答案 2

为这些提交按钮指定名称和值,例如:

    <td>
    <input type="submit" name='mybutton' class="noborder" id="save" value="save" alt="Save" tabindex="4" />
    </td>
    <td>
    <input type="submit" name='mybutton' class="noborder" id="publish" value="publish" alt="Publish" tabindex="5" />
    </td>

然后在你的php脚本中,你可以检查

if($_POST['mybutton'] == 'save')
{
  ///do save processing
}
elseif($_POST['mybutton'] == 'publish')
{
  ///do publish processing here
}

推荐