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

如何在PHP MySQL中获取表格行ID(工单系统场景)

实现点击Manage按钮获取工单ID的方案

方法1:将ID嵌入按钮的data属性(推荐)

修改PHP渲染逻辑,把工单ID存入按钮的data-id属性,再通过JavaScript监听点击事件提取值。

第一步:修改PHP表格渲染代码

<?php
// 从数据库获取工单数据(示例)
$tickets = $pdo->query("SELECT id, subject, status FROM tickets")->fetchAll(PDO::FETCH_ASSOC);
?>
<table>
  <thead>
    <tr>
      <th>Subject</th>
      <th>Status</th>
      <th>Action</th>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($tickets as $ticket): ?>
    <tr>
      <td><?= htmlspecialchars($ticket['subject']) ?></td>
      <td><?= htmlspecialchars($ticket['status']) ?></td>
      <!-- 绑定工单ID到按钮的data-id属性 -->
      <td><button class="manage-btn" data-id="<?= $ticket['id'] ?>">Manage</button></td>
    </tr>
    <?php endforeach; ?>
  </tbody>
</table>

第二步:添加JavaScript处理逻辑

// 给所有manage按钮绑定点击事件
document.querySelectorAll('.manage-btn').forEach(btn => {
  btn.addEventListener('click', function() {
    // 提取当前按钮绑定的工单ID
    const ticketId = this.dataset.id;
    // 这里写入后续编辑逻辑,比如跳转编辑页或弹出表单
    console.log('待编辑工单ID:', ticketId);
    // 示例:跳转到编辑页面
    // window.location.href = 'edit_ticket.php?id=' + ticketId;
  });
});

方法2:直接将ID作为函数参数传入

如果习惯用内联事件绑定,可直接把ID传递给处理函数:

PHP代码修改

<td><button onclick="handleManage(<?= $ticket['id'] ?>)">Manage</button></td>

对应JavaScript函数

function handleManage(ticketId) {
  console.log('待编辑工单ID:', ticketId);
  // 执行编辑操作
}

方法3:从行内隐藏单元格提取ID

若不想修改按钮,可把ID放在行内的隐藏单元格,点击按钮时从父行提取:

PHP代码修改

<tr>
  <!-- 隐藏单元格存储工单ID -->
  <td class="ticket-id" style="display: none;"><?= $ticket['id'] ?></td>
  <td><?= htmlspecialchars($ticket['subject']) ?></td>
  <td><?= htmlspecialchars($ticket['status']) ?></td>
  <td><button class="manage-btn">Manage</button></td>
</tr>

JavaScript代码

document.querySelectorAll('.manage-btn').forEach(btn => {
  btn.addEventListener('click', function() {
    // 找到当前按钮所在的表格行,再提取隐藏单元格的ID
    const ticketId = this.closest('tr').querySelector('.ticket-id').textContent;
    console.log('待编辑工单ID:', ticketId);
  });
});

注意事项

  • 所有输出到HTML的用户内容必须用htmlspecialchars()转义,防止XSS攻击。
  • 若通过URL传递ID到编辑页面,后端必须验证当前用户对该工单的操作权限,避免越权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:52:28