【问题标题】:PHP POST value from a looped table循环表中的 PHP POST 值
【发布时间】:2013-09-12 11:04:05
【问题描述】:

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

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

【问题讨论】:

  • 请提供更详细的代码。
  • 您的代码示例并没有任何意义。你能提供更相关的例子吗?也使用代码标签。

标签: php html mysql


【解决方案1】:

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

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

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

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

【讨论】:

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

每个帖子按钮都可以有其名称和值,因此如果您更改代码以生成可跟踪的​​帖子按钮名称,您可以随心所欲地使用它。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-06
      • 2018-07-11
      • 2018-11-25
      • 1970-01-01
      相关资源
      最近更新 更多