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

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

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

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

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

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

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

谢谢

【问题讨论】:

    标签: php jquery mysql ajax checkbox


    【解决方案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 的问题有在当前版本中已解决...有人不喜欢我;((
    猜你喜欢
    • 2014-03-31
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2012-08-11
    • 2017-07-16
    • 1970-01-01
    • 2013-06-12
    • 2023-03-05
    相关资源
    最近更新 更多