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

Posted

技术标签:

【中文标题】复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql【英文标题】:How to update a mysql field when a checkbox status changes? using jquery (ajax), php and mysql 【发布时间】:2011-01-23 00:05:31 【问题描述】:

我是 jquery 和 ajax 的新手,我在做这件事时遇到了麻烦......

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

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

我想要做的是将此复选框连接到一个ajax事件,使用jquery,如果复选框状态发生变化(如果它被点击),那么它会发送两个值(第一次加载表时复选框的状态,和消息 id) 到另一个 php 文件。

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

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

谢谢

【问题讨论】:

【参考方案1】:

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

编辑:这里有一个完整的客户端示例。在 php 中,您必须将消息 ID 回显为复选框值。然后将其作为参数 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>

【讨论】:

谢谢亲信。只是一些疑问......使用该代码,我如何将 message_id 传递给 test.php 文件?还有其他疑问......如何在这个 html 部分调用该函数 该函数被自动调用,因为通过使用 "$(".messageActivated").bind('click', ",您为每个复选框添加了一个事件处理程序。传递消息 ID 的问题有在当前版本中已解决...有人不喜欢我;((

以上是关于复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql的主要内容,如果未能解决你的问题,请参考以下文章

在复选框状态更改时从回收器视图适配器更新 sqlite 数据库

如果可以使用复选框更改多行值?

如何绑定输入字段并同时更新 vuex 状态

angular2 复选框 ng-model 未更新

如何更新以编程方式更改的元素的 v-model?

即使模型更改,Angular 4 复选框状态也不会更新