【问题标题】:while loop result at table, sends first row when submit form in php表中的while循环结果,在php中提交表单时发送第一行
【发布时间】:2017-12-12 12:26:44
【问题描述】:

1.获取用户数据并以表格方式显示

                  <?php
                      while($row=mysqli_fetch_assoc($rResultSet))
                     {
                   ?>

                  <td><?php echo $row['id']?></td>
                  <td><?php echo $row['name']?></td>
                  <td><?php echo $row['user_role']?></td>
                  <td><?php echo $row['start_date']?></td>
                  <td>

                  <form id='euser' action='edituser.php' method='post'>
                  <input type="hidden" name="id" value="<?php echo $row['id']?>">
                  <input type="hidden" name="type" value="edituser">

                  <a  href="javascript: document.getElementById('euser').submit();">Edit</i></a>|
                 </form>
                 <?php 
                 }
                 ?>

这段代码的结果

2.当每次点击编辑链接时,第一个 id 16 由表单抛出

我需要,当在 id 17 按链接编辑时,表单会抛出 id 17

【问题讨论】:

  • 现在点击edit的结果是什么?
  • 使用类而不是 id。 Id 值必须是唯一的。因此,当您每次单击编辑时,它都会获得id="euser" 表单的第一次出现的元素ID。
  • 添加任何属性以进行编辑,例如 data-id=".$id."
  • 在错误日志中我检查值是 16(第一个值)通过表单发送
  • 当你点击编辑时你会得到什么......我在这里看到你隐藏了。

标签: php forms while-loop submit


【解决方案1】:

如果有帮助,请尝试以下操作:

<?php
    while($row=mysqli_fetch_assoc($rResultSet))
{
?>
<tr>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['user_role'];?></td>
<td><?php echo $row['start_date'];?></td>
<td>

    <form id='<?php echo $row['id'];?>' action='edituser.php' method='post'>
        <input type="hidden" name="id" value="<?php echo $row['id'];?>">
        <input type="hidden" name="type" value="edituser">

        <a  href="javascript: document.getElementById('<?php echo $row['id'];?>').submit();">Edit</a>|
    </form>
</td>
</tr>
 <?php 
   }
 ?>

【讨论】:

    【解决方案2】:

    问题在于表单的id 属性,它对于每一行都必须是唯一的。现在,您正在为每一行分配相同的 id 值 euser。为了保持id 值的唯一性,您可以为每个表行附加$row['id']euser。此外,您忘记将每个表格行封装在&lt;tr&gt;...&lt;/tr&gt; 中。所以你的代码应该是这样的:

    <?php
        while($row=mysqli_fetch_assoc($rResultSet)){
        ?>
            <tr>
                <td><?php echo $row['id']?></td>
                <td><?php echo $row['name']?></td>
                <td><?php echo $row['user_role']?></td>
                <td><?php echo $row['start_date']?></td>
                <td>
    
                <form id='euser<?php echo $row['id']?>' action='edituser.php' method='post'>
                    <input type="hidden" name="id" value="<?php echo $row['id']?>">
                    <input type="hidden" name="type" value="edituser">
    
                    <a  href="javascript: document.getElementById('euser<?php echo $row['id']?>').submit();">Edit</i></a>|
                </form>
            <tr>
        <?php 
        }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2013-01-23
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      相关资源
      最近更新 更多