You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP展示SQL表记录时,如何获取按钮对应行的记录值?

解决按钮点击无法获取对应行记录值的问题

你的核心问题是没有给每个按钮绑定对应行的ApplicationID,而且原代码里还有HTML标签错误,导致无法区分点击的是哪条记录。下面给你两种简单可行的解决方法:

方法一:通过GET参数直接传递ID(最便捷)

直接在按钮的跳转链接里带上当前行的ApplicationID,这样处理页面就能拿到对应的ID。同时修正原代码里的HTML标签错误(<a>标签不能用</button>闭合):

<tbody>
    <?php while($row = mysqli_fetch_assoc($applicationResult)){ ?>    
    <tr>
        <td><?php echo $row['FirstName'] ?></td>
        <td><?php echo $row['LastName'] ?></td>
        <td><?php echo $row['UserName'] ?></td>
        <td><?php echo $row['Email'] ?></td>
        <td><?php echo $row['ApplicationID'];?></td>
        <td>
            <!-- 给href加上?id=传递ApplicationID -->
            <a href="acceptApplication.php?id=<?php echo $row['ApplicationID']; ?>" class="btn btn-sm round btn-outline-success">Accept</a>
            <a href="rejectApplication.php?id=<?php echo $row['ApplicationID']; ?>" class="btn btn-sm round btn-outline-danger">Reject</a>
        </td>
    </tr>
    <?php } ?>
</tbody>

在acceptApplication.php或rejectApplication.php里,直接通过$_GET['id']获取对应记录的ID:

// 先判断参数是否存在,避免报错
if(isset($_GET['id'])){
    $applicationId = $_GET['id'];
    // 这里写你的处理逻辑,比如更新数据库状态等
    // 注意:一定要做安全验证,比如用mysqli_real_escape_string转义,或者用预处理语句防止SQL注入
}

方法二:用表单POST传递ID(更安全,适合敏感操作)

如果不想把ID暴露在URL里,可以用表单+隐藏域的方式传递,每行单独一个表单:

<tbody>
    <?php while($row = mysqli_fetch_assoc($applicationResult)){ ?>    
    <tr>
        <td><?php echo $row['FirstName'] ?></td>
        <td><?php echo $row['LastName'] ?></td>
        <td><?php echo $row['UserName'] ?></td>
        <td><?php echo $row['Email'] ?></td>
        <td><?php echo $row['ApplicationID'];?></td>
        <td>
            <!-- Accept按钮的表单 -->
            <form action="acceptApplication.php" method="POST" style="display:inline;">
                <input type="hidden" name="applicationId" value="<?php echo $row['ApplicationID']; ?>">
                <button type="submit" class="btn btn-sm round btn-outline-success">Accept</button>
            </form>
            <!-- Reject按钮的表单 -->
            <form action="rejectApplication.php" method="POST" style="display:inline;">
                <input type="hidden" name="applicationId" value="<?php echo $row['ApplicationID']; ?>">
                <button type="submit" class="btn btn-sm round btn-outline-danger">Reject</button>
            </form>
        </td>
    </tr>
    <?php } ?>
</tbody>

在处理页面里通过$_POST['applicationId']获取ID:

if(isset($_POST['applicationId'])){
    $applicationId = $_POST['applicationId'];
    // 处理逻辑,同样要注意安全验证
}

额外注意事项

  • 原代码里的array_push和$_SESSION['applicants']完全没必要,因为这种方式存的是所有ID,根本没法区分点击的是哪一行,直接删掉就行。
  • 无论用哪种方法,都要对获取到的ApplicationID做合法性验证,比如检查是否为数字,或者用预处理语句执行数据库操作,防止SQL注入攻击。

内容的提问来源于stack exchange,提问作者Potato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:07:41