【问题标题】:Can only post first result of while loop只能发布while循环的第一个结果
【发布时间】:2014-07-17 03:01:12
【问题描述】:

我正在使用 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 中的值。

【问题讨论】:

  • 你为什么在while循环中使用&lt;form&gt;
  • tr 周围有一个form 是无效的HTML - 表单必须进入td,或者它必须在完整的table 之外。

标签: javascript php while-loop


【解决方案1】:

您在循环内生成多个&lt;form&gt;s,将您的&lt;form&gt; 移到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>

【讨论】:

  • 感谢您的建议,但是当我这样做时,我只能从最后一条记录中获取值。
  • 它有点作用,但我只需要所选名称的 userID 和 accessID 的值。我该怎么做才能将结果隔离出来?
【解决方案2】:

因为这条线,你遇到了麻烦

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

【讨论】:

  • 当我使用此代码时,链接什么也不做。感谢您的努力。
猜你喜欢
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
  • 2021-09-24
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
相关资源
最近更新 更多