【发布时间】:2016-03-21 21:17:51
【问题描述】:
所以我的问题是: 我正在做一个 foreach 循环,它会生成一个链接列表。每个链接都包含 JavaScript,用于提交表单。但是,我想为每个链接附加一个变量,以便我可以获取 $_POST 变量以查看单击了哪个链接。
我尝试了一个 foreach 循环,然后是这样的:
foreach ($matches as $match) {
?>
<div class="containerbla">
<form>
<h3><a href="javascript:{}" onclick="document.getElementById('matchesform').submit(); return false;"><?php echo $match->name?></a></h3>
<?php echo $match->id; ?>
<input type="hidden" name="matchid" value="<?php echo $match->id; ?>">
</form>
</div>
<?php
}
它在下面显示正确的用户名列表和正确的用户 ID。但是当我点击用户时,我总是在隐藏字段中获得最新的用户 ID,提交给我的 view-messages php。
我该如何解决?
【问题讨论】:
-
使用数组:
<input type="hidden" name="matchid[]" value="<?php echo $match->id" ?>"> -
您要提交的“matchesform”在哪里?在此示例中,您以编程方式创建的表单没有 id,因此它们的值不是您单击时提交的值。
-
@RobbieAverill:我试过了,但这对实际检索数组/被点击的值有什么帮助?我尝试了 $_POST['matchid'][0] 仍然得到与 aabove 相同的结果
-
我明白了 - 我建议您将 javascript 处理程序从 HTML 中取出并单独定义。将数据属性添加到其中包含 ID 的锚点,并在发布数据之前将其附加到数据集。
-
他正在创建一个输入,它没有被提交的原因是输入的格式错误。要使其正常工作,您必须将输入附加到正确的表单中,请参阅我的答案。
标签: php mysql forms post hidden-field