[英]How can I get the id of the datarow I selected in my table?
我制作了一个由 SQL 数据库填充的表。 使用 CSS 我做到了,当我将鼠标悬停在表格行上时,它会突出显示。 当我单击表行(记录)时,我想获取该记录的 id 并将其放入一个变量中,我可以使用该变量来更新记录或删除它。
echo "<table>";
echo "<tr>";
echo "<th>".'ID'."</th>";
echo "<th>".'Username'."</th>";
echo "<th>".'Name'."</th>";
echo "<th>".'Role'."</th>";
echo "</tr>";
foreach($result as $pers)
{
echo "<tr>";
echo "<td>".$pers->id."</td>
<td>".$pers->username."</td>
<td>".$pers->name."</td>
td>".$pers->role."</td>";
echo "</tr>";
}
echo "</table>";
上面你可以看到创建表的代码,它可以工作,我只需要一种方法来获取de id。
我认为最佳做法是:将数据属性赋予“tr”元素:
echo "<tr data-id='".$pers->id."'>";
...
echo "</tr>";
点击后可以收到id:
$( "tr" ).click(function() {
var id = $(this).attr('data-id');
})
希望这可以帮助。 单击它会将 ID 发送到控制台。 源代码中的文档。
/* Put all rows in an array */ const rows = [...document.getElementsByTagName("tr")]; /* Assign event listener to each row */ rows.map(row => row.addEventListener("click", () => { /* Return the first element */ const id = row.querySelector("td"); console.log(id.textContent); }));
tr:hover { background-color: yellow; }
<table> <tr> <td>1</td> <td>User name 1</td> <td>Name 1</td> <td>Role 1</td> </tr> <tr> <td>2</td> <td>User name 2</td> <td>Name 2</td> <td>Role 2</td> </tr> <tr> <td>3</td> <td>User name 3</td> <td>Name 3</td> <td>Role 3</td> </tr> </table>
要在 PHP 中使用 JS 数据,您可以使用 Jquery ajax 调用。
$( "tr" ).click(function() {
var id = $(this).first("td").html(); // now you have it in JS available
$.ajax({
url: "yourfile.php", // you can also send it to the php file that updates or deletes the record
data: {"id": id},
type: 'POST',
success : function(data) { }
});
});
然后你的PHP代码:
<?php
if(isset($_POST['id'])){
// session id now has your selected id as value.
$_SESSION['id'] = $_POST['id'];
}
else{
unset($_SESSION['id']); // unset session id every time the page reloads
echo "<table>";
echo "<tr>";
echo "<th>".'ID'."</th>";
echo "<th>".'Username'."</th>";
echo "<th>".'Name'."</th>";
echo "<th>".'Role'."</th>";
echo "</tr>";
foreach($result as $pers)
{
echo "<tr>";
echo "<td>".$pers->id."</td>
<td>".$pers->username."</td>
<td>".$pers->name."</td>
<td>".$pers->role."</td>";
echo "</tr>";
}
echo "</table>";
}
然后,当您更新数据库中的一行时,您可以访问$_SESSION['id']
,因为每次单击tr
时它都会更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.