[英]How do I update javascript variables with new values which are changing in my database?
[英]How do I update my database with mysqli and javascript
我有一個網站,它基本上是一個音頻播放器和一個屏幕上的集成歌詞查看器,用戶應該能夠與他們聽到的音樂同步。 我只有一個問題,那就是; 我到底如何從 javascript 函數調用 mysqli 更新語句? 當用戶單擊保存按鈕時,內容被扔到一個 div 中,我希望在運行 JavaScript 后 PHP 獲取該內容並將其放入數據庫中。
最好的方法是什么?
為什么這不起作用?
function saveinPHP() {
//alert("Came here");
//var superstr = $( "#savelyric" ).text();
var superstr = 'lol';
$.ajax({
type: "POST",
url: "includes/sendlyrics.php",
data: superstr,
cache: false,
contentType: false,
processData: false,
success: function(data){
alert("---"+data);
alert("Settings has been updated successfully." + data + "~~~" + superstr);
//window.location.reload(true);
}
});
}
然后是PHP:
<?php
include ('db_connect.php');
$data = $_POST['data'];
$query = "UPDATE song SET time=". $data ." WHERE id='1'";
mysqli_query($query);
?>
將 PHP 編寫在一個完全獨立的專用文件中,該文件采用 POST 變量、構造 SQL 查詢並將它們插入到數據庫中。 然后讓您的 JavaScript 函數使用 POST 請求將數據發送到此 PHP 文件。
瀏覽器中的 JavaScript 無法與數據庫交互。 它只能向可以捕獲這些請求並將附加數據放入數據庫的服務器發送 GET/POST 請求。
首先,當您指定一個字符串作為data
,jQuery 將按原樣發送它。
您使用的字符串"lol"
沒有以 PHP 能夠理解的 POST 數據的任何一種標准格式進行格式化。
因此, $_POST
中沒有數據。
改為向 jQuery 傳遞一個對象:
data: { data: superstr }
其次, false
不是上述任何一種標准格式的內容類型。 默認情況下,jQuery 將使用適當的內容類型。 刪除此覆蓋:
contentType: false,
第三, processData: false,
將對象轉換為表單編碼數據。 去掉它。
第四,SQL 中的字符串必須被引用。 你沒有引用data
。
$query = "UPDATE song SET time='$data' WHERE id='1'";
請注意,這仍然容易受到 SQL 注入的影響,您應該修復它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.