我有一個名為用戶的 MYSQL 表。我還有一個名為 online_status 的列。在我的頁面上,我希望用戶能夠將他們的狀態切換為“在線”或“離線”,并在他們使用 Ajax 單擊 div 時在數據庫中更新此狀態,而無需刷新頁面。這是我的 PHP/HTML 代碼: <?php if ($profile['online_status'] == "Online") { $status = "Offline"; }else{ $status = "Online"; } ?><div id="one"><li class="far fa-circle" onClick="UpdateRecord(<? echo $profile['online_status']; ?>);"/></li><? echo 'Show as ' .$status; ?></div> 我的阿賈克斯:<script type="text/javascript" src="/js/jquery.js"></script><script> function UpdateRecord(id) { jQuery.ajax({ type: "POST", url: "update_status.php", data: 'id='+id, cache: false, success: function(response) { alert("Record successfully updated"); } }); }</script>更新狀態.php<?php$var = @$_POST['id'] ;$sql = "UPDATE users SET online_status = 'Offline' WHERE user_id = 1";$result = mysqli_query($conn,$sql) or die(mysqli_error($conn));//added for testingecho 'var = '.$var;?>我目前沒有收到任何警報,我的數據庫中也沒有任何更新。請有人可以幫助我改進/修復代碼以使其正常工作嗎?此外,如果有一種方法可以消除對 update_status.php 文件的需求并擁有 ajax 自我發布,那么這將是首選。
2 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
據我所知,沒有彈出警報也沒有更新任何內容的原因是onclick()
您擁有的按鈕。將參數周圍的引號添加到更新函數。正如您所擁有的,javascript 將參數視為一個 javascript 變量,就像$profile['online_status'];
一個字符串。
如果您調試了代碼,您應該會看到一條指向該行的onclick()
錯誤
改變這個
onClick="UpdateRecord(<? echo $profile['online_status']; ?>);"
到
onClick="UpdateRecord('<? echo $profile['online_status']; ?>');"
此外,您還在更新語句中對 where 子句進行硬編碼。您應該$_POST['id']
通過準備好的語句使用變量

蝴蝶不菲
TA貢獻1810條經驗 獲得超4個贊
將數據傳遞到 PHP 文件
data: { id: id },
將數據庫連接添加到您的 PHP 文件
<?php
$var = $_POST['id'] ;
$sql = "UPDATE users SET online_status = 'Offline' WHERE user_id = '$var'";
$result = mysqli_query($conn,$sql) or die(mysqli_error($conn));
?>
如果您仍然看到任何錯誤,然后按F12并轉到網絡選項卡,然后單擊該 div,網絡選項卡將記錄您的 ajax 文件返回,您可以通過選擇您的 php 文件的響應來檢查那里,希望它有幫助
- 2 回答
- 0 關注
- 137 瀏覽
添加回答
舉報
0/150
提交
取消