只能发布while循环的第一个结果

Can only post first result of while loop

本文关键字:第一个 结果 循环 while      更新时间:2023-09-26

我使用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