Php 如何在单击“提交”按钮后获取id为的名称?

Php 如何在单击“提交”按钮后获取id为的名称?,php,html,submit,form-submit,Php,Html,Submit,Form Submit,下面的代码我使用输入名称结果+行id及其预期的工作方式。 <td class="t-width-150" id="result"> <input type="text" name="result<?php echo $row['id']; ?>" id="txtresult" value="0"> </td> 谢谢大家! 更新:我解决了它。不需要更多的答案。谢谢大家!你是说你事先不知道会有什么POST变量,因为表单中的结果数量未知,因此

下面的代码我使用输入名称结果+行id及其预期的工作方式。

<td class="t-width-150" id="result">
   <input type="text" name="result<?php echo $row['id']; ?>" id="txtresult" value="0">
</td>

谢谢大家!


更新:我解决了它。不需要更多的答案。谢谢大家!你是说你事先不知道会有什么POST变量,因为表单中的结果数量未知,因此文本框数量未知?如果是这样的话,你也可以

a) 循环遍历所有
$\u POST
变量,找到任何以“result”开头的变量,然后从中提取值,例如

foreach (array_keys($_POST) as $key)
{
  if (preg_match("/result(\d+)/", $key, $matches))
  {
    echo $_POST[$key]; //will get the value entered in the input field
    echo $matches[1]; //will get you the row ID from the field name e.g. from "result123" it would return "123".
  }
}

b) 在表单字段名称中使用数组语法,并将结果字段和ID字段分开,例如

<input type="text" name="result[]" id="txtresult" value="0" />
<input type="hidden" name="rowID[]" value="<?php echo $row['id']; ?>"/>


可以使用如下形式的表单字段命名格式:

name="result[<?php echo $row['id']; ?>]"

您必须使用字段的实际名称-使用
name=“result123”
,您需要访问
$\u POST['result123']
。您应该首先将其设置为类似于
name=“result[]”
,然后
$\u POST['result']
将是一个可以轻松循环的数组。@misorude我不能使用name=“result123”,因为我想在MySql数据库的“result”之后使用行id。上面的代码不是问题,问题在这里“$\u POST['result']”。如何将name=“result”输入“$\u POST['result']”。如何将name=“result”输入“$\u POST['result']”-您必须自己完成这项工作
name=“result123”
将导致
$\u POST['result123']
的产生——这就是这个东西的工作原理。没有任何魔法可以自动将其作为
$\u POST['result']
“我不能使用name=“result123”因为”-这就是您当前正在使用的。“因为我想在MySql数据库的“result”之后使用row id”-这将如何阻止您使用我的建议?我仍然认为
name=“result[]”
是解决这个问题的方法。这样,ID将自动成为
$\u POST['result']
中数组的索引,因此使用扩展的foreach语法循环该索引可以方便地访问行ID和输入的字段值。@这种显式编号方法的一个缺点是,如果ID值不连续(和/或不以0开头)不幸的是,有些浏览器不会提交所有的值。显然,如果这是基于数据库数据,那么这两种情况发生的可能性非常高。如果您想使用数组语法方法,最好使用
[]
并让浏览器处理编号。以前从未听说过这一点。根本看不出这个问题是怎么发生的——浏览器并没有从一开始就解释这些名称的含义,而基于这些参数名称创建数组的所有魔力,完全是在PHP方面。米索鲁德道歉道:“你有没有更详细地描述这个问题的链接,或者哪些浏览器会受到影响?”。你说得对,这不是浏览器的问题。读了一点书之后,这是一个有点错误的回忆。这似乎是特定于ASP.NET MVC的,在这些场景中,服务器端代码无法正确解析提交的表单值。我甚至不确定这在最新版本中是否仍然是一个问题。所以如果我是你,我会继续发表你的建议作为答案。啊,这让我松了一口气:-)我有一秒钟担心,如果我使用的是旧项目,那么现在就必须对任何此类问题进行测试。
name="result[<?php echo $row['id']; ?>]"
foreach( $_POST['result'] as $id => $value ) {
  echo "The submitted value for the record with ID ", $id, " was ", $value, "<br>\n";
}