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

如何在PHP表格最后一列添加跳转至更新/删除页的按钮?

解决联系人表格添加编辑/删除跳转按钮的问题

当前代码的问题

  • 循环内误用了未定义的变量$contact['id'],实际应该使用循环迭代的$row['id']
  • 跳转地址未指向要求的contact-update.php和contact-delete.php页面
  • HTML字符串拼接时引号嵌套错误,会导致页面结构异常

修改后的完整代码

<?php
require 'config.php';

// 启动会话
session_start();

// 页面权限验证
if (!isset($_SESSION['loggedin'])) {
    header('Location: login.php');
    exit;
}

$pdo = pdo_connect_mysql();

$stmt = $pdo->prepare('SELECT * FROM `contacts`');
$stmt->execute();
// 原代码中$contacts变量未使用,可根据需求保留或删除
$contacts = $stmt->fetch(PDO::FETCH_ASSOC);

?>
<?= template_header("Contacts") ?>
<?= template_nav() ?>

<!-- START PAGE CONTENT -->
<?php if ($userResponses) : ?>
    <p class="notification is-danger is-light">
        <?php echo implode('<br>', $userResponses); ?>
    </p>
<?php endif; ?>
<h1 class="title">Contacts</h1>
<table class="table">
    <thead>
        <tr>
            <td>#</td>
            <td>Name</td>
            <td>Email</td>
            <td>Phone</td>
            <td>Title</td>
            <td>Created</td>
            <td>操作</td>
        </tr>
    </thead>
    <tbody>
        <?php
        // 重置查询游标,确保能完整遍历所有数据(因之前执行过一次fetch)
        $stmt->execute();
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo "<tr>" .
                "<td>" . $row["id"] . "</td>" .
                "<td>" . $row["name"] . "</td>" .
                "<td>" . $row["email"] . "</td>" .
                "<td>" . $row["phone"] . "</td>" .
                "<td>" . $row["title"] . "</td>" .
                "<td>" . $row["created"] . "</td>" .
                "<td>" . 
                    '<div class="buttons">' .
                        '<a href="contact-update.php?id=' . $row['id'] . '" class="button is-success">编辑</a>' .
                        '<a href="contact-delete.php?id=' . $row['id'] . '" class="button is-danger">删除</a>' .
                    '</div>' .
                "</td>" .
                "</tr>";
        }
        ?>
    </tbody>
</table>
<!-- END PAGE CONTENT -->

<?= template_footer() ?>

关键修改说明

  1. 修正变量引用:将循环内的$contact['id']改为$row['id'],确保获取当前行的联系人ID
  2. 修正跳转地址:将链接指向contact-update.php和contact-delete.php,并通过?id=xxx传递ID参数,目标页面可通过$_GET['id']获取该ID进行后续编辑/删除操作
  3. 修复引号嵌套:HTML部分改用单引号包裹,避免与PHP双引号字符串冲突,保证HTML结构正常解析
  4. 重置查询游标:因为之前执行过一次$stmt->fetch()给$contacts,导致游标移动,重新执行$stmt->execute()确保能遍历所有联系人数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:38:12