PHPデータベースクエリで埋められるページを作成しました(すべての行がMySQLテーブルから読み取られ、HTMLでテーブルに書き込まれます)。10 秒間すべて、同じ PHP スクリプトが jQuery AJAX によって要求され、現在のテーブル コンテンツを更新する必要があります。この関数の戻り値は、テーブルの HTML 値を変更するために使用されます。
テーブルにはいくつかのボタンがあります。クリックすると、オンからオフ (またはその逆) に切り替わり、別の PHP ファイルが AJAX で呼び出され、シェル コマンドを介して 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: テーブルの内容が削除され、新しいものに置き換えられます。新しい行 (またはボタンの背景色) を表示するだけでなく、フェードインすることはできますか? それが最後の仕上げになります。
私の説明を理解していただければ幸いです。