如何在复选框状态更改时更新mysql字段?使用jquery(ajax),php和mysql

时间:2010-03-03 00:27:07

标签: php jquery mysql ajax checkbox

我是jquery和ajax的新手,我在这方面遇到了麻烦...

我有一个php网页,它使用mysql表中的值构建一个表。行是“消息”,行的最后一个字段是布尔字段“read”,表示消息是否已被读取。

构建表格时,我将布尔值转换为“已选中”或“未选中”的复选框,值为1或0。

我想要做的是使用jquery将此复选框连接到ajax事件,如果复选框状态发生更改(如果已单击),则会发送两个值(首次加载表时复选框的状态,和消息id)到另一个php文件。

在这个其他的php文件中,我会在mysql表上更新该特定消息的“read”状态。

你能告诉我如何做到这一点吗?我可以处理的php部分,但我不知道构建jquery / ajax函数以及如何在复选框的html部分调用它们...

由于

1 个答案:

答案 0 :(得分:1)

以下代码将向id为#checkboxId的复选框添加一个事件处理程序。处理程序将调用test.php?checked = 0或checked = 1,具体取决于当前复选框状态(未选中/已选中)

编辑:这里有一个完整的客户端示例。从php,你必须回复消息ID作为复选框值。然后将其作为param msgId返回给服务器。现在支持带有类过滤的多个复选框。当然,您可以更改类和参数名称。

<html>
<head>
<title>Checkbox test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

</head>
<body>

<input type="checkbox" class="messageActivated" value="msg0">
<input type="checkbox" class="messageActivated" value="msg1">
<input type="checkbox" class="messageActivated" value="msg2">

</body>

<script type="text/javascript">
$(".messageActivated").bind('click', function() { 
    if($(this).attr('checked'))
    {
        $.get("store.php", { checked: 1, msgId: $(this).attr('value') } );
    }
    else
    {
        $.get("store.php", { checked: 0, msgId: $(this).attr('value') } );
    }
});
</script>
</html>