形式不正常的foreach

时间:2013-04-30 08:40:16

标签: php forms post foreach get

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

基本上,我希望用户点击提交按钮并将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>";
?>

使用上面的脚本,似乎foreach函数会传输每个id。即使用method="get"时,我会得到"aaa.php?mailAction=View&id=2&id=1..."的网址。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:0)

试试这个

<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放在提交按钮上,您应该获得URL中单击按钮的值

答案 1 :(得分:0)

如何将每个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
}
?>

答案 2 :(得分:0)

你必须使用这种类型的数组

<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>";
?>

答案 3 :(得分:0)

如果使用id=2&id=1在浏览器查询中获得method=get,则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>";
}