首页 > 解决方案 > 从动态创建的表中单击一行创建一个动态页面

问题描述

每当我单击表中的一行时,我都试图打开一个新页面。该表是从数据库中获取数据而生成的。每当我从表中单击 X 行时,我都需要将您重定向到包含该行详细信息的页面。我不知道如何根据单击的行重定向到非静态网页,而且...我需要帮助才能知道单击了哪一行,因此我知道应该再次从数据库中获取哪些数据(在此显示新页面)。我之前唯一尝试过的是使用 ref 标签重定向,但在这种情况下将不起作用。

到目前为止我的计划:

            <tr class ="fila" id=<? echo $row["id"] ; ?>>
            <td ><? echo $row["nombre_disfraz"]; ?></td>
            <td><? echo $nombreregion; ?></td>
            <td><? echo $nombrecomuna; ?></td>
            <td><? echo $nombrecategoria ?></td>
            <td><? echo $nombretalla; ?></td>
            <td><? echo $row["nombre_contacto"]; ?></td>
            </tr>

这就是我现在如何生成我的表,每个 id 对每一行都是唯一的......我的计划是为类“fila”做一个 javascript,并以某种方式使用类似 this.id 的东西将变量 id 从 javascript 传递给 php ,所以我可以有一个名为 details.php 的网页,我可以再次向数据库请求数据,因为我有一个 id...这是一个好计划吗?

标签: phphtmlmysql

解决方案


你的计划很好,并且遵循一个非常标准的模式。目前尚不清楚究竟是什么阻止了您进行研究和尝试,但无论如何,这是完成的文章:

在所有具有“fila”类的元素上设置“click”事件侦听器。然后在处理程序中,获取被点击元素的 ID,并使用 JavaScript 导航到新页面,使用 ID 作为查询字符串参数。

演示:

var rows = document.querySelectorAll('.fila');
rows.forEach(btn => {
  btn.addEventListener('click', function() {
    var url = "details.php?id=" + this.id;
    console.log(url);
    window.location = url;
  });
});
table {
  border-collapse: collapse;
}

td {
  border-bottom: 1px solid #cccccc;
  padding: 5px;
}

.fila:hover {
  cursor: pointer;
  background-color:#cccccc;
}
<table>
  <tr class="fila" id="1">
    <td>
      1
    </td>
    <td>
      23r
    </td>
    <td>
      fgdfg
    </td>
    <td>
      g4gfg
    </td>
    <td>
      4gw3g>
    </td>
    <td>
      23rgdfgd
    </td>
  </tr>
  <tr class="fila" id="2">
    <td>
      2
    </td>
    <td>
      x
    </td>
    <td>
      y
    </td>
    <td>
      z
    </td>
    <td>
      a
    </td>
    <td>
      b
    </td>
  </tr>
  <tr class="fila" id="300">
    <td>
      300
    </td>
    <td>
      x
    </td>
    <td>
      y
    </td>
    <td>
      z
    </td>
    <td>
      c
    </td>
    <td>
      d
    </td>
  </tr>
</table>


推荐阅读