javascript - 使用 Ajax 发布数据

标签 javascript php jquery ajax database

我一直在尝试使用 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/

相关文章:

php - Laravel:如何根据需要计算行数的关系获取结果

jquery - 使 div 宽度随 jQuery 而变化

javascript - 如何在 Jquery Datepicker 中向日期添加特定 ID(如工具提示)?

javascript - JS 获取动画元素的当前位置

php - 如何在 PHP 中替换字符串中的单个单词?

php - shell_exec - 记录和输出

javascript - HTML - 通过按同一行内的按钮获取行 ID

javascript - 动态增加和减少 jQuery slider 值

javascript - 在查询生成器 Jquery 中获取 SQL 规则时,“IN”运算符无法正常工作

javascript - 在 D3 图表的轴上启用滚动