Php foreach在形式上工作不正常
我是PHP的初学者,如果答案显而易见,我很抱歉 基本上,我希望用户单击submit按钮并将id发布到aaa.phpPhp 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
<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上发帖,也许我发帖时应该更清楚。但我真的没想到会有这么快的反应!谢谢你!它起作用了!谢谢!!