Php foreach在形式上工作不正常

Php foreach在形式上工作不正常,php,forms,post,foreach,get,Php,Forms,Post,Foreach,Get,我是PHP的初学者,如果答案显而易见,我很抱歉 基本上,我希望用户单击submit按钮并将id发布到aaa.php <form action='aaa.php' method='get'>` <?php foreach ($a as $b) { ?> <tr> <td><input type="submit" name="Action" value='View' /></td> <td>&l

我是PHP的初学者,如果答案显而易见,我很抱歉

基本上,我希望用户单击submit按钮并将id发布到aaa.php

<form action='aaa.php' method='get'>`
<?php foreach ($a as $b) {
 ?>
  <tr>
    <td><input type="submit" name="Action" value='View' /></td>
    <td><?php echo $b['info'] ?></td>
    <input type="hidden" name="id" value="<?php echo $b['id']"?>
<?php echo }
echo "</tr></form></table>";
?>
`
试试这个

<table>
    <form action="aaa.php" method="get">
    <?php foreach ($a as $b) : ?>
        <tr>
            <td><input type="submit" name="Action" value="<?php echo $b['id'];?>" /></td>
            <td><?php echo $mail['info'] ?></td>            
        </tr>
    <?php endforeach;?>
    </form>
</table>


通过将ID放在submit按钮上,您应该可以在URL中获得单击按钮的值,将每个ID放在它自己的形式如何

<?php foreach ($a as $b) {
 ?>
<form action='aaa.php' method='get'>
    <table>
      <tr>
        <td><input type="submit" name="Action" value='View' /></td>
        <td><?php echo $mail['info'] ?></td>
        ...
        <input type="hidden" name="id" value="<?php echo $b['id']?>" />
      <tr>
    </table>
</form>
<?php
}
?>

...

您必须使用此类型的数组

<form action='aaa.php' method='get'>`
<?php foreach ($a as $b) {
 ?>
  <tr>
    <td><input type="submit" name="Action[]" value='View' /></td>
    <td><?php echo $b['info'] ?></td>
    <input type="hidden" name="id[]" value="<?php echo $b['id']"?>
<?php echo }
echo "</tr></form></table>";
?>
`

如果使用
method=get
在浏览器查询中获得
id=2&id=1
,则foreach循环似乎工作正常。我认为您必须首先理解HTML表单才能意识到您的问题

使用上面的代码,您将生成一个带有ID数组的表单:

<form action='aaa.php' method='get'>
  <input type="hidden" name="id" value="2">
  <input type="hidden" name="id" value="1">

  <input type="submit" name="Action" value='View'/>
</form>

但实际上你想一次发送一个id。因此,您必须生成多个表单才能实现这一点:

<form action='aaa.php' method='get'>
  <input type="hidden" name="id" value="2">

  <input type="submit" name="Action" value='View'/>
</form>

<form action='aaa.php' method='get'>
  <input type="hidden" name="id" value="1">

  <input type="submit" name="Action" value='View'/>
</form>

我希望,现在你明白这一点了

为了解决您的问题,您的PHP代码应该如下所示:

foreach ($a as $b)
{
  echo "<form action='aaa.php' method='get'>
          <input type='hidden' name='id' value=" . $b['id'] . ">
          <input type='submit' name='Action' value='View'/>
        </form>";
}
foreach($a作为$b)
{
回声“
";
}

如果您发布更多代码,甚至让我们知道
$mail
$a
的值,可能会有所帮助。当您从表单提交时,该表单中的所有输入都将被发布。您的
$a
变量包含什么?你为什么使用foreach?很难理解你的问题到底是什么。为什么要通过隐藏字段传输多个ID值?用户似乎没有选择的余地,所以为什么不首先在会话的服务器端保留这些值呢?OP应该
var_dump
转储
$a
的内容,这样我们就知道了ArrayTanks的内容了!但实际上我在表单上有多个按钮,所以value='View'是必需的。这是我第一次在stackoverflow上发帖,也许我发帖时应该更清楚。但我真的没想到会有这么快的反应!谢谢你!它起作用了!谢谢!!