我一直在尝试使用 AJAX 发布数据,这将更新我数据库中的一个字段,但是我在这样做时遇到了麻烦。一切似乎都应该运行良好,我在控制台中没有收到任何错误,但我不知道为什么我的数据库不会更新。
有人可以帮我吗?
AJAX
:
function ajaxUpdate() {
var arr = {var1: name, var2: age};
$.ajax({
url: 'ajax/confirm.php',
type: 'POST',
data: JSON.stringify(arr),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
console.log("success");
}
});
}
Confirm.php
:
$name=$_POST['var1'];
$age=$_POST['var2'];
if($name == "Stuart") {
mysqli_query($connection,"UPDATE people SET age='$age'");
}
else if($name == "Peter") {
mysqli_query($connection,"UPDATE people SET age='$age'");
}
与我的数据库的连接工作正常,因为我设置了 $connection
并在我的浏览器中转到页面 /ajax/confirm.php
,我看到“连接成功"在我的控制台中,如我所定义的,如果成功的话。
所以我不确定为什么不更新?
我的值(value)观没有被正确发布吗?
我是 AJAX 的新手,如果这是非常简单的事情,请原谅我!
谢谢
最佳答案
尝试以下操作:
function ajaxUpdate() {
var arr = {var1: name, var2: age};
$.ajax({
url: 'ajax/confirm.php',
type: 'POST',
data: arr,
success: function(data) {
console.log("success");
}
});
}
不是将对象转换为 json 字符串,而是按原样发送。
编辑: 同时删除 dataType
和可能的 contentType
。您的代码存在 SQL 注入(inject)风险。检查准备好的语句和转义 mysql
数据。
关于javascript - 使用 Ajax 发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46487916/