46

目前,我有一个 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>

可能应该在前面提到这一点,但我不能为按钮分配值,因为按钮是一个图像,所以文本会显示在它上面。

4

4 回答 4

97

给每个人input一个name属性。只有 clickedinputname属性会被发送到服务器。

<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].

于 2012-08-13T07:00:28.823 回答
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>

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

if($_POST['mybutton'] == 'save')
{
  ///do save processing
}
elseif($_POST['mybutton'] == 'publish')
{
  ///do publish processing here
}
于 2012-08-13T07:00:46.053 回答
2

您可以按如下方式使用它,

<td>

<input type="submit" name="save" class="noborder" id="save" value="Save" alt="Save" 
tabindex="4" />

</td>

<td>

<input type="submit" name="publish" class="noborder" id="publish" value="Publish" 
alt="Publish" tabindex="5" />

</td>

在 PHP 中,

<?php
if($_POST['save'])
{
   //Save Code
}
else if($_POST['publish'])
{
   //Publish Code
}
?>
于 2012-08-13T07:03:32.877 回答
2

If you can't put value on buttons. I have just a rough solution. Put a hidden field. And when one of the buttons are clicked before submitting, populate the value of hidden field with like say 1 when first button clicked and 2 if second one is clicked. and in submit page check for the value of this hidden field to determine which one is clicked.

于 2012-08-13T07:07:39.700 回答