2

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

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

确定单击了哪个提交按钮图标以便我可以编写 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>
4

6 回答 6

5

为每个提交按钮设置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'];会给你点击哪个提交按钮的值

于 2013-07-31T04:40:38.680 回答
3

给每个按钮一个名字=""

然后你可以做类似的事情

isset($_POST['button_name']) {
      // execute code here if true
}
于 2013-07-31T04:40:30.103 回答
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>

我认为您也可以使用按钮标签的 value 属性,这绝对不可能使用 input 标签。

如果您需要使用 ID 或其他变量,请使用 name="submitDelete[888]" 然后,使用 PHP 进行检查:

if( isset($_POST['submitDelete']) ) {
    echo key($_POST['submitDelete']);// Displays the ID to delete, e.g. 888.
}
于 2013-12-19T13:28:50.807 回答
1

这么多年后,我喜欢button它,因为它允许独立于返回的值显示文本或图像。

这是一个符合这篇文章标题的可能性说明,并且比 OP 更多案例。

<?php
if(!empty($_POST['id'])){
  echo 'button '. $_POST['id'] .' clicked';
} elseif ('create' === ($_POST['action'] ?? '')) {
  echo 'create clicked'; // ?action=create
} elseif (isset($_POST['action'])) {
  echo 'refresh clicked'; // ?action
} elseif (isset($_POST)) {
  echo 'Default clicked'; // ?
}
?>
<form method="POST">

  <!-- Original Post examples -->
  <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>

  <!-- Additional possibilities -->
  <!-- ?action=create -->
  <button type="submit" name="action" value="create">New element</button>
  <!-- ?action -->
  <button type="submit" name="action">Refresh</button>
  <!-- ? -->
  <button type="submit">Default</button>
</form>
于 2019-04-26T07:24:26.940 回答
0

你可以给你的每个按钮一个name和一个。value然后它会显示在$_POST['submit']

<img src="http://www.foo.com/img.png" id="button_4" name='submit' value='4' />
于 2013-07-31T04:38:44.347 回答
-1

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

于 2013-07-31T04:51:05.900 回答