![](/img/trans.png)
[英]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.