如何使用两个提交按钮,并区分使用哪个提交表单? [复制]
Posted
技术标签:
【中文标题】如何使用两个提交按钮,并区分使用哪个提交表单? [复制]【英文标题】:How do I use two submit buttons, and differentiate between which one was used to submit the form? [duplicate] 【发布时间】:2012-08-09 09:31:50 【问题描述】:目前,我有一个 html 表单,用户可以在其中输入文章的标题和文本。当提交时,他们会看到两个按钮。一种是“保存”他们的文章而不发布,另一种是“发布”文章并将其公开。
我正在使用 php,我正在尝试弄清楚如何判断使用了哪个按钮,以便在数据库中存储适当的相应值。
<td>
<input type="submit" class="noborder" id="save" value="" tabindex="4" />
</td>
<td>
<input type="submit" class="noborder" id="publish" value="" tabindex="5" />
</td>
之前可能应该提到过这一点,但我无法为按钮分配值,因为按钮是一个图像,所以文本会显示在它的上方。
【问题讨论】:
【参考方案1】:给每个input
一个name
属性。只有被点击的input
的name
属性会被发送到服务器。
<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
?>
编辑:将 value
属性更改为 alt
。不确定这是图像按钮的最佳方法,您不想使用input[type=image]
的任何特殊原因?
编辑:由于这不断获得支持,我继续将奇怪的 alt
/value
代码更改为真正的提交输入。我相信最初的问题要求某种图像按钮,但现在有很多更好的方法来实现这一点,而不是使用input[type=image]
。
【讨论】:
我只是在使用 !empty() 尝试这种方法。既然您提到它,isset() 可能会起作用。编辑:它确实有效。感谢您的建议! 我不记得为什么我选择使用按钮而不是图像,但我相信这是因为我无法将悬停应用于图像提交。 使用多个提交按钮的完美简单解决方案。 无法在 Safari 中使用【参考方案2】:为这些提交按钮提供名称和值,例如:
<td>
<input type="submit" name='mybutton' class="noborder" id="save" value="save" tabindex="4" />
</td>
<td>
<input type="submit" name='mybutton' class="noborder" id="publish" value="publish" tabindex="5" />
</td>
然后在你的 php 脚本中你可以检查
if($_POST['mybutton'] == 'save')
///do save processing
elseif($_POST['mybutton'] == 'publish')
///do publish processing here
【讨论】:
我不能给按钮值,因为它们是图像。如果我分配值,那么该文本将显示在我的图像顶部。 如果是这种情况,那么您可以拥有 2 个不同名称的不同名称,如 @powerbuoy 所建议的。然后在 php 脚本中检查哪个按钮已提交。 我认为这也行不通,他说他不能将值放在按钮上,因为它们是图像。【参考方案3】:如果你不能为按钮赋予价值。我只有一个粗略的解决方案。放置一个隐藏字段。并且当在提交之前单击其中一个按钮时,在单击第一个按钮时填充隐藏字段的值,如果单击第二个按钮,则填充 2。并在提交页面中检查此隐藏字段的值以确定点击了哪个。
【讨论】:
【参考方案4】:你可以如下使用,
<td>
<input type="submit" name="save" class="noborder" id="save" value="Save"
tabindex="4" />
</td>
<td>
<input type="submit" name="publish" class="noborder" id="publish" value="Publish"
tabindex="5" />
</td>
在 PHP 中,
<?php
if($_POST['save'])
//Save Code
else if($_POST['publish'])
//Publish Code
?>
【讨论】:
以上是关于如何使用两个提交按钮,并区分使用哪个提交表单? [复制]的主要内容,如果未能解决你的问题,请参考以下文章