提问人:Maruli Davin 提问时间:7/30/2022 最后编辑:Maruli Davin 更新时间:7/30/2022 访问量:389
如何在php echo中使用innerHTML中的Id或类并从数据库中获取值?
How to use innerHTML by Id or class in php echo and get value from database?
问:
按下按钮后,我正在使用 javascript 替换验证码值,代码如下所示:
document.getElementById('showCode').addEventListener('click', function() {
const icon = this.querySelector('i');
if (icon.classList.contains('fa-eye')) {
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
document.getElementById('validCode').innerHTML = 'validationcodehere';
} else {
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
document.getElementById('validCode').innerHTML = '●●●●●●●●●●●●●●';
}
});
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
<span id='validCode'>●●●●●●●●●●●●●●</span>
<button id='showCode' class='btn btn-secondary btn-sm ms-4'><i class="fa fa-eye"></i></button>
</div>
</body>
</html>
上面的代码运行良好,但放在 php echo 中时无法运行。我使用的 php7 代码如下所示:
<?php
while ($row=mysqli_fetch_array($query))
{
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['orderid']."</td>";
echo "<td>".$row['validation']."</td>";
echo "<td><span id='validCode'>●●●●●●●●●●●●●●</span><button id='showCode' class='btn btn-secondary btn-sm ms-4'><i class='fa fa-eye'></i></button></td>";
echo "<td>".$row['order_date']."</td>";
echo "</tr>";
}
?>
我的问题是如何使其在 php echo 会话中运行,以及如何从数据库“.$row['validation']] 中获取值的值。谢谢。"document.getElementById('validCode').innerHTML = 'validationcodehere';"
validationcodehere
答:
1赞
imvain2
7/30/2022
#1
我去掉了 ID 并用类代替。
我还去掉了跨度中的点,并将验证码放在数据属性中。
使用 classList.toggle,我打开/关闭图标类。
我使用重复函数为代码中的每个字符显示一个点。
let showCodeBTN = document.querySelector(".btn-showCode");
showCodeBTN.addEventListener("click", showCode);
const codeEl = document.querySelector("[data-code]");
codeEl.innerHTML = "●".repeat(codeEl.getAttribute("data-code").length);
function showCode() {
const code = codeEl.getAttribute("data-code");
const icon = this.querySelector('i');
const showingCode = (icon.classList.contains('fa-eye-slash'));
icon.classList.toggle("fa-eye");
icon.classList.toggle("fa-eye-slash");
codeEl.innerHTML = (showingCode) ? "●".repeat(code.length) : code;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
<span data-code="12345678"></span>
<button class='btn-showCode btn btn-secondary btn-sm ms-4'><i class="fa fa-eye"></i></button>
</div>
</body>
</html>
PHP回声:
echo "<td><span data-code='{$row['validation']}'></span><button class='btn-showCode btn btn-secondary btn-sm ms-4'><i class='fa fa-eye'></i></button></td>";
评论
0赞
Maruli Davin
7/30/2022
嗨 Imvain2,感谢您的回答,这太棒了。但是,当我在 php echo 中尝试它时,它不起作用
0赞
imvain2
7/30/2022
@MaruliDavin 我为您的回声添加了更新的代码
0赞
Maruli Davin
7/30/2022
感谢您的帮助,但它仍然无法在 php 中工作。当我输入php echo时,即使是更改图标的切换功能也不起作用。但是您编写的代码在php之外运行良好,我的PHP版本7.4.13
评论