循环表中的PHP POST值

时间:2013-09-12 11:04:06

标签: php html mysql

请帮帮我......

我正在设计一个表格内的表格。 该表是基于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>

3 个答案:

答案 0 :(得分:1)

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

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

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

有关详细信息,需要更多代码,例如您要打印的数据。

答案 1 :(得分:0)

每个帖子按钮都可以有自己的名称和值,因此如果您更改代码以生成可跟踪的​​帖子按钮名称,您可以随意执行任何操作。

<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"]);
}

答案 2 :(得分:0)

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