我有PHP代码从MySQL DB检索数据。我想要的是按下按钮,然后弹出窗口必须显示该相关id
的数据或在该id
行上显示数据。因此,对于第一个btn来说,它工作良好,但在其他btn上,它显示的是btn 1的数据。
那里有解决方案吗? 谢谢
$query = "SELECT * FROM users"
$results = mysqli_query ($conn, $query);
$chck_res = mysqli_num_rows($results);
if ($chck_res > 0) {
while($row = mysqli_fetch_array($results)) {
$id = $row['id'];
$name =$row['name'];
$lastName = $row['lName'];
?>
<div class="container">
<button onClick="popWin()">View data at <?php echo $id; ></button>
</div>
<div id="popup">
echo $id = $row['id'];
echo $name =$row['name'];
echo $lastName = $row['lName'];
</div>
<?php
}
}
CSS:
#popup {
display: none;
}
JS:
function popWin() {
document.getElementById('popup').style.display = "Block";
}
答案 0 :(得分:1)
DOM元素必须具有唯一的ID ,您无法通过getElementById
访问具有相同ID的第二个元素。
尝试用下一个替换div:
<div>
<div class="container">
<button onClick="popWin(this)">View data at <?php echo $id; ></button>
</div>
<div class="popup">
<?= $id = $row['id']; ?>
<?= $name = $row['name']; ?>
<?= $lastName = $row['lName']; ?>
</div>
</div>
JS:
function popWin(btn) {
btn.parentNode.parentNode.getElementsByClassName("popup")[0].style.display = "Block";
console.log(btn.parentNode.parentNode.getElementsByClassName("popup")[0].innerHTML);
}
function popWin(btn) {
btn.parentNode.parentNode.getElementsByClassName("popup")[0].style.display = "Block";
console.log(btn.parentNode.parentNode.getElementsByClassName("popup")[0].innerHTML);
}
<div>
<div class="container">
<button onClick="popWin(this)">View data at 2</button>
</div>
<div class="popup">
name id 2
</div>
</div>
<div>
<div class="container">
<button onClick="popWin(this)">View data at 1</button>
</div>
<div class="popup">
name id 1
</div>
</div>
答案 1 :(得分:0)
您的代码有错误。你
在第14行的回显ID上未结束php标记
<?php
$query = "SELECT * FROM users";
$results = mysqli_query ($conn, $query);
$chck_res = mysqli_num_rows($results);
if ($chck_res > 0) {
while($row = mysqli_fetch_array($results)) {
$id = $row['id'];
$name =$row['name'];
$lastName = $row['lName'];
?>
<div class="container">
<button onClick="popWin()">View data at <?php echo $id; ?></button>
</div>
<div id="popup">
<?php echo $id = $row['id'];
echo $name =$row['name'];
echo $lastName = $row['lName'];?>
</div>
<?php }}