如何在PHP的下一页中获取(提交按钮名称)?

时间:2011-12-07 14:17:12

标签: php forms button submit

我希望我的问题很清楚并有答案。这是我的提交按钮(不是真正的代码):

while... input type=submit name=$row['ID']

当我点击提交按钮时,我需要在下一页中获取其名称。怎么样?

我有不同的提交按钮,我不知道用户是选择了第一个,第二个,第三个还是x按钮。

5 个答案:

答案 0 :(得分:4)

根据您的评论,您实际上需要确定是否按下了按钮。请查看以下示例。

这是一个简单的表单,其中包含用户名输入和三个按钮,可以对该用户名执行各种操作:

<form action="next_page.php" method="post">
  <input type="text" name="myname" />
  <input type="submit" name="get_myname" value="Give my name back" />
  <input type="submit" name="rand_name" value="I will give you some name" />
  <input type="submit" name="color_name" value="Your name as a rainbow" />
</form>

按下submit按钮之一后,我们转到 next_page.php 并检查它是哪一个并根据该操作执行操作。

<?php
  //this is next_page.php
  if (isset($_POST['get_myname']))   {
    //echo user's name to screen

  } elseif ( isset($_POST['rand_name']) )   {
    //echo a random name

  } elseif ( isset($_POST['color_name']) )   {
    //change every letter to a different colour

  } else   {
    //nothing to do here, just nice to have a comment letting you know
  }
?>

答案 1 :(得分:2)

如果提交按钮是带有值的表单的一部分,则可以在下一页的$ _POST或$ _GET数据数组中访问它。如果您的脚本不知道提交按钮的名称,请遍历postdata以找到它。

答案 2 :(得分:1)

使用查询字符串并提交到your_script.php?id=$row['ID'],而不是为按钮名称指定ID。然后在下一页上使用$_GET['id']获取按钮名称。

答案 3 :(得分:1)

编辑matino's answer更适合您的用例。

如果我理解正确,您希望在提交以下表格后获取/检查“the_name”的存在:

<form method="post">
  <input name="the_name" type="submit">
</form>

现在,所有POST的数据都可以在PHP的$_POST超全局中使用,但PHP无法知道哪部分数据是提交按钮。

有两种可能的方法:

  • 如果您已经知道该名称,则可以使用isset($_POST['the_name'])检查其存在 - 这会告诉您用户是否通过点击the_name提交按钮提交了表单(但是,如果点击{{ 1}},变量不存在。)
  • 如果您可以更改HTML,可以通过将所有提交元素名称更改为enter来使用下标 - 这样您可以通过查看submit[the_name]找到按下的提交按钮的名称

答案 4 :(得分:0)

如果您不想更改应用程序设计,只需

即可
  foreach ($yourids_used_in_prev_page as $id)
  {
    if (isset($_POST[$id])) // or $_GET if your form method="get"
    {
      // and you are get it!
    }
  }

这不是一个漂亮的解决方案,但可能适合你