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

fvg*_*vgs 34 php forms action submit

目前,我有一个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>
Run Code Online (Sandbox Code Playgroud)

可能应该早些提到过这个,但我无法分配按钮值,因为按钮是一个图像,所以文本会显示在它上面.

pow*_*uoy 75

给每个属性input一个name.只有被点击inputname属性才会被发送到服务器.

<input type="submit" name="publish" value="Publish">
<input type="submit" name="save" value="Save">
Run Code Online (Sandbox Code Playgroud)

然后

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

编辑:将value属性更改为alt.不确定这是图像按钮的最佳方法,但是你不想使用任何特殊原因input[type=image]

编辑:由于这继续得到upvotes我继续前进,并将奇怪的alt/ value代码更改为真正的提交输入.我相信原始问题需要某种图像按钮,但现在有更好的方法来实现,而不是使用input[type=image].

  • 我只是使用 !empty() 尝试这种方法。既然你提到了它,isset() 可能会起作用。编辑:它确实有效。感谢您的建议! (2认同)

Dr.*_*Dan 8

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

    <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>
Run Code Online (Sandbox Code Playgroud)

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

if($_POST['mybutton'] == 'save')
{
  ///do save processing
}
elseif($_POST['mybutton'] == 'publish')
{
  ///do publish processing here
}
Run Code Online (Sandbox Code Playgroud)