只能发布while循环的第一个结果
Can only post first result of while loop
我使用while循环来显示查询的结果。while循环运行正常。在隐藏字段中,我想将userID和accessID的值发布到用户详细信息页面。我正在使用javascript提交表单从链接提交。我的问题是,无论我点击的用户名,我只能发布第一个显示的记录的值。我做错了什么?
代码:
<?php
while($row = $result->fetch_array()) { ?>
<form method="post" action="edit_user.php" id="userForm">
<tr>
<td>
<a href="#" onclick="return(submitForm())"><?php echo $row['firstname'].' '.$row['surname']; ?></a>
<input type="hidden" name="userID" value="<?php echo $row['userID']; ?>" />
<input type="hidden" name="accessID" value="<?php echo $row['accessID']; ?>" />
</td>
</tr>
</form>
<?php } ?>
用于提交表单的javascript:
function submitForm() {
var form = document.getElementById("userForm");
form.submit();
}
谢谢。编辑-我不想传递url中的值
您正在生成多个<form>
s内循环,将您的<form>
移出while
循环,如:
<form method="post" action="edit_user.php" id="userForm">
<?php
while($row = $result->fetch_array()) { ?>
<tr>
<td>
<a href="#"><?php echo $row['firstname'].' '.$row['surname']; ?></a>
<input type="hidden" name="userID[]" value="<?php echo $row['userID']; ?>" />
<input type="hidden" name="accessID[]" value="<?php echo $row['accessID']; ?>" />
</td>
</tr>
<?php } ?>
<a href="#" onclick="return submitForm();">Submit</a>
</form>
你遇到麻烦了,因为这行
var form = document.getElementById("userForm");
在Javascript和HTML中,ID对于某个DOM元素来说应该是唯一的。在本例中,您有一大堆具有相同ID的表单标签。您需要为每个表单指定一个不同的ID,然后将该ID传递给submitForm函数。
例如:<?php
$id = 0;
while($row = $result->fetch_array()) { ?>
$id++;
<form method="post" action="edit_user.php" id="<?php echo "userForm".$id ?>">
<tr>
<td>
<a href="#" onclick="return(submitForm("<?php echo "userForm".$id ?>"))"><?php echo $row['firstname'].' '.$row['surname']; ?></a>
<input type="hidden" name="userID" value="<?php echo $row['userID']; ?>" />
<input type="hidden" name="accessID" value="<?php echo $row['accessID']; ?>" />
</td>
</tr>
</form>
<?php } ?>
和
function submitForm(id) {
var form = document.getElementById(id);
form.submit();
}
edit:如何编辑php?: D
相关文章:
- If语句只执行第一个条件并运行其他条件,但没有结果
- 与网络界面相比,谷歌搜索API有时会重复第一个结果,有时会重复第二个结果
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 承诺,如果第一个失败,则返回第二个承诺结果
- 动态创建的元素上的事件侦听器仅对第一个结果起作用
- 为什么在给出第一个结果后仍然调用此方法
- 如何对select2自动完成结果进行排序,只显示以第一个字母开头的项目
- AJAX 实时搜索仅当结果以相同的第一个字母开头时才显示结果
- 如何在集合中的项上触发 jQuery 事件(意外的 jQuery 结果来自 $._data() 与集合的第一个元素)
- jQuery.find() 只返回第一个结果
- 在“ng-repeat”中仅显示第一个和最后一个子项作为结果
- Phantom JS:第一个孩子返回正确结果的时间有一半
- 正则表达式第一个结果($ 1)替换为变量的属性
- 当不隐藏时,只显示sql的第一个结果
- Ember-Data objectAt()获取第一个结果不起作用
- 只能发布while循环的第一个结果
- 谷歌放置自动完成 - 在回车键上选择第一个结果
- jQuery实时搜索-在页面找到所有可用结果后返回到第一个结果
- 将另一个数组插入到for循环中,重复第一个结果
- execMatch只返回第一个结果