多个提交按钮,如何确定单击哪一个?

时间:2013-07-31 04:35:58

标签: php html

我有一个包含多个提交按钮的表单。

每个提交按钮都是一个IMG SRC垃圾桶,表示基于网络的消息收发邮件收件箱中邮件的删除图标

找出点击哪个提交按钮图标的最佳方法是什么,以便我可以编写PHP / MySQL代码来删除消息?

if(!empty($_POST)){
        // How do I figure out which submit button has been clicked to get the ID of the message to delete?
}

<form method="POST">
<input src="http://www.foo.com/img.png" id="button_1">
<input src="http://www.foo.com/img.png" id="button_2">
<input src="http://www.foo.com/img.png" id="button_3">
<input src="http://www.foo.com/img.png" id="button_4">
...
<input src="http://www.foo.com/img.png" id="button_100">
</form>

6 个答案:

答案 0 :(得分:4)

为每个提交按钮设置value并在php中检查并查找单击了哪个

<form method="POST">
<img src="http://www.foo.com/img.png" id="button_1" name="submit_btn" value="1">
<img src="http://www.foo.com/img.png" id="button_2" name="submit_btn" value="2">
<img src="http://www.foo.com/img.png" id="button_3" name="submit_btn" value="3">
<img src="http://www.foo.com/img.png" id="button_4" name="submit_btn" value="4">
...
<img src="http://www.foo.com/img.png" id="button_100" name="submit_btn" value="100">
</form>

echo $_POST['submit_btn'];会为您提供点击哪个提交按钮的值

答案 1 :(得分:3)

为每个按钮命名=“”

然后你可以做类似

的事情
isset($_POST['button_name']) {
      // execute code here if true
}

答案 2 :(得分:2)

此问题的解决方案是使用标记输入/按钮的NAME属性。

<input type="submit" name="submitSave" value="Save"/>
<input type="submit" name="submitAddComment" value="Add comment"/>

<button type="submit" name="submitSave">Save</button>
<button type="submit" name="submitAddComment">Add comment</button>

我认为你也可以使用button标签的value属性,这对输入标签来说是绝对不可能的。

如果您需要使用ID或其他变量,请使用name =&#34; submitDelete [888]&#34; 然后,用PHP检查:

if( isset($_POST['submitDelete']) ) {
    echo key($_POST['submitDelete']);// Displays the ID to delete, e.g. 888.
}

答案 3 :(得分:1)

这么多年以后,我喜欢button,因为它允许显示文本或图像而与返回值无关。

在这里例举了一些可能的信息,这些信息与该职位的标题相符,而且比OP的案例更多。

<?php
if(!empty($_POST['id'])){
  echo 'button '. $_POST['id'] .' clicked';
} elseif ('create' === ($_POST['action'] ?? '')) {
  echo 'create clicked';
} elseif (isset($_POST['action'])) {
  echo 'refresh clicked';
} elseif (isset($_POST)) {
  echo 'Default clicked';
}
?>
<form method="POST">
  <button type="submit" name="id" value="1"><img src="http://www.foo.com/img.png"></button>
  <button type="submit" name="id" value="2"><img src="http://www.foo.com/img.png"></button>
  ...
  <button type="submit" name="id" value="100"><img src="http://www.foo.com/img.png"></button>

  <button type="submit" name="action" value="create">New element</button>
  <button type="submit" name="action">Refresh</button>
  <button type="submit">Default</button>
</form>

答案 4 :(得分:0)

您可以为每个按钮提供namevalue。然后它会显示在$_POST['submit']

<img src="http://www.foo.com/img.png" id="button_4" name='submit' value='4' />

答案 5 :(得分:-1)

你必须通过删除每个的名称和值来将你的值传递给当前文件。然后你可以在你的php脚本中回显,以便知道点击了哪一个。