如何使用Ajax将复选框信息添加到MySQL数据库?

时间:2014-02-27 16:21:21

标签: javascript jquery mysql ajax checkbox

我通过MySql通过Ajax / Json填充了一个简单的列表。该列表只是标题和说明,每个条目都有一个checkbox。单击后,我需要checkbox来推送到单击它的数据库。你会怎么做呢?

[顺便说一句... 现在,因为我的SQL数据有setTimeInterval来动态传递列表,它会自动重置我的复选框。我假设如果我记录我的checkbox已经通过SQL中的boolean设置,那么可以有一种方法来检查它......]

我是新手,我只是在玩耍并试图学习,所以这些信息完全是理论上的。

1 个答案:

答案 0 :(得分:0)

您可以使用on()函数收听复选框点击。

$(function() {
    $(document.body).on('click', 'input.mycheckbox', function() {
        var checkbox = $(this);
        var checked = checkbox.attr('checked');
        $.ajax('service.url', {
            type: 'post',
            data: {action: 'checkbox-select', id: checkbox.attr('id'), checked: checked},
            success: function(data) {
                alert(data);
            },
            error: function(data) {
                alert(data);
                // Revert
                checkbox.attr('checked', !checked);
            }
        });
    }
});

如果您需要任何澄清,或者这不符合您的情况,请随时询问。

编辑:

AJAX函数的data参数是一个将发布到PHP页面的对象。当您的PHP代码运行时,$_POST将是一个包含我们传递的值的数组。因此,$_POST['action']将为'复选框选择',$_POST['id']将获取ID,$_POST['checked']将为真或假,具体取决于是选中还是取消选中复选框。您在Javascript中获取ID的方法可能会改变;我只是让checkbox.attr('id')给你一个想法。

学习PHP时,从客户端转发来自服务器的响应会很有帮助。 PHP代码示例:

if($_POST['action'] == 'checkbox-select']) {
    $checkbox = $_POST['id'];
    $checked = $_POST['checked'];
    // Your MySQL code here
    echo 'Updated';
}
echo 'Code ran';

我编辑了JS以显示服务器的结果。