1

请帮我解决这个问题......

我正在设计一个表格内的表格。该表是基于while循环生成的。每行都有一个下载按钮。当我单击下载时,POST 值应该得到相同的行信息。但是我的 POST 变量只给了我最后一行的信息。我尝试将 input-type 用作隐藏...但它不起作用这是供您参考的代码

在此处输入代码

<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>
4

3 回答 3

1

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

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

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

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

于 2013-09-12T11:36:01.530 回答
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"]);
}
于 2013-09-12T11:15:38.263 回答
0

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

于 2013-09-14T11:19:22.203 回答