循环表中的 PHP POST 值


PHP POST value from a looped table

请帮我摆脱困境.....

我正在设计一个位于表单内的表格。该表基于 while 循环生成。每行都有一个下载按钮。当我单击下载时,POST 值应获得相同的行信息。但是我的 POST 变量只给我最后一行信息。我尝试使用输入类型作为隐藏...但它没有奏效这是供您参考的代码

在此处输入代码

<form name="simpleform" method="post" action="insert.php">
<?php
$data = "environment";
$user_name = $_SESSION['username'];
$serch = mysql_query("SELECT * FROM data WHERE (data_category = '" . $data . "')    ");                 
while ($record=mysql_fetch_assoc($serch))
{?>             
<tr class="warning">
<td >
<input type="text" value=<?php echo $record['data_ID'];?> readonly="readonly" >
<input type="hidden" value=<?php echo $record['data_ID'];?> name="dataid" />
</td>
<td >
<input type="text" value=<?php echo $record['data_name'];?> readonly="readonly" >
<input type="hidden" value=<?php echo $record['data_name'];?> name="dataname" />
</td>
<td >
<input type="text" value=<?php echo $record['data_downloads'];?> readonly="readonly">
<input type="hidden" value=<?php echo $record['data_downloads'];?> name="datadown" />
</td>
<td >
<input type="text" value="" >
<input type="hidden" value="" name="datause" />
</td>
<td>
<input type="submit" name="simplesubmit" value="Go to download" />
</td>
</tr>           
<?php }
exit;
?>
</tbody>
</form>

问题是您对所有控件使用相同的 name 属性。因此,当 PHP 收到表单时,它们会被覆盖,您只能看到表单的最后一个值。

避免这种情况的最简单方法是将[]附加到name的末尾 - 例如name=dataid[]。这将使 PHP 将所有参数作为一个数组,这样你就不会丢失数据。

第二个问题是,您的提交按钮也具有相同的名称 - 您应该通过在其名称中使用一些特定于行的数据来使其多样化,例如'name="submit-'.$record['data_name'].'"'

有关详细信息,需要您提供更多代码,例如要打印的数据是什么样的。

每个发布按钮都可以有其名称和值,因此,如果您更改代码以生成可跟踪的发布按钮名称,则可以使用它做任何您想做的事情。

<table>
   <tr>
      <td>...</td>
      <td>...</td>
      <td><input type="submit" name="submit[1]" value="OK" />
   </tr>
   <tr>
      <td>...</td>
      <td>...</td>
      <td><input type="submit" name="submit[2]" value="OK" />
   </tr>
</table>

当表格发布时,很容易捕获单击哪个按钮;

if ($_POST["submit"]) {
   $id = key($_POST["submit"]);
}

感谢您提供的信息...和良好的反应。正如你所说,我替换了相同的,并看到帖子值将所有参数作为数组提供给我。 我的目的是让客户端下载他点击的文件。因此,如果客户端单击表中的第一行按钮,则 POST 值应仅获取该Data_name。这样我就可以运行查询以获取该data_name的 URL 并下载