我创建了一个由 php 数据库查询填充的页面(所有行都从 MySQL 表中读取并以 HTML 格式写入表中)。jQuery AJAX 请求相同的 PHP 脚本在所有 10 秒内都会刷新当前表格内容。然后,此函数的返回值将用于更改表格 HTML 值。
表中有一些按钮。当它们被点击时,它们从打开切换到关闭(反之亦然),另一个 PHP 文件被 AJAX 调用,然后通过 shell 命令控制 433MHz 无线套接字。这 10 秒 ajax-refresh 的目的是使按钮与电源插座的实际状态(保存在 MySQL 数据库中)同步。
$(document).ready(function(){
$(".toggle").click(function() {
if($(this).hasClass("ein")) {
$(this).removeClass("ein");
$(this).html("aus");
$.post("various/executeCode.php", {transmitted:true, id:$(this).attr('id'), toggle:'0'}, function(result) {
});
} else {
$(this).addClass("ein");
$(this).html("ein");
$.post("various/executeCode.php", {transmitted:true, id:$(this).attr('id'), toggle:'1'}, function(result) {
});
}
});
});
window.setInterval("reloadPage()", 5000);
function reloadPage()
{
$.get('various/reloadPage.php', function(data) {
$("#content").html(data);
});
}
$stmt = $dbh->query("SELECT * FROM `funksteckdosen`");
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($row as $r)
{
echo "<tr>";
echo " <td>" . $r['name'] . "</td>";
echo " <td><button id='" . $r['id'] . "' class='toggle" . ($r['toggle'] == 0 ? "" : " ein") . "'>"
. ($r['toggle'] == 0 ? "aus" : " ein") . "</button></td>";
echo "</tr>";
}
现在我遇到了以下问题:一旦页面第一次被 AJAX 刷新,按钮就会停止工作。Javascript 不再执行 click() 函数。这是为什么?问题 2:表的内容被删除并被新的替换。我是否可以以某种方式淡入新行(或按钮背景颜色),而不仅仅是显示它们?那将是最后的接触。
我希望你能理解我的解释。