我正在使用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();
}
谢谢。 编辑 - 我不想传递网址中的值。
答案 0 :(得分:1)
您正在生成多个<form>
内部循环,将<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>
答案 1 :(得分:1)
因为这行
,你遇到了麻烦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();
}
编辑:我该怎么写php? :d