使用jquery检查复选框时如何更新数据库?

Posted

技术标签:

【中文标题】使用jquery检查复选框时如何更新数据库?【英文标题】:How to update Database while checking checkbox with jquery? 【发布时间】:2016-07-08 11:50:37 【问题描述】:

我正在尝试在使用 jquery $.post 或 $.ajax 检查复选框(1 或 0)时更新 DB 中的值。我真的很感激一些帮助。这是我的代码:

HTML

<div class="onoffswitch">
     <?php
    $yesno = (bool)$baner['noti'];
    $checked = ($yesno) ? 'checked="checked"' : '';  
     ?>
   <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" value="1" id="myonoffswitch" <?php echo $checked; ?>>
   <label class="onoffswitch-label" for="myonoffswitch"></label>
</div>

jQuery

$(function()
    $("#myonoffswitch").click(function()
        $.post("notification.php");
        )
    );

notification.php

connections stuffs...

$yesno = ( isset($_POST['onoffswitch']) ) ? 1 : 0;
$sql = "UPDATE baner SET noti='$yesno'";

【问题讨论】:

似乎出了什么问题?您似乎没有通过发布请求发送任何数据。您可能会发现 post() 的文档很有帮助,尤其是 examples。 【参考方案1】:

你几乎拥有它。您只需要阅读您的复选框状态并将其与您的 POST 请求一起发回即可。

$(function()
    $("#myonoffswitch").click(function()
        var isOn = $("#myonoffswitch").prop("checked");
        $.post("notification.php",  'onoffswitch': isOn , function (result) 
            //handle success here
        );
    );

【讨论】:

感谢您的重播。我在这一行遇到错误: var isOn $("#myonoffswitch").prop("checked"); 我认为缺少一个等号。但不管有没有,它都不会对我有用。任何想法?当我手动更改为 0 时,它会在我第一次单击时更改为 1,但它不会回到 0。【参考方案2】:

$.ajax 试试这个。 它被广泛用于更新数据而无需重定向页面。

$("#myonoffswitch").click(function()
    $.ajax(
       var onoffswitch=$('#myonoffswitch').val();
       type: "POST",
       url: "notification.php", //Relative or absolute path to notification.php file
       data: onoffswitch: onoffswitch,
       success: function(response) 
                content.html(response);
       
    );  

);

notification.php

connections stuff...

$yesno = ( isset($_POST['onoffswitch']) ) ? 1 : 0;
$sql = "UPDATE baner SET noti='$yesno'";

【讨论】:

以上是关于使用jquery检查复选框时如何更新数据库?的主要内容,如果未能解决你的问题,请参考以下文章

更新:将AJAX的JSON数据应用于现有复选框并检查/取消选中(jQuery)

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

如何根据复选框更新数据库值? jQuery/php/ajax

Coldfusion中的复选框更改时如何更新数据库?

Kendo 可观察复选框未通过 jQuery .prop("checked") 更新

如果提交表单时未选中复选框,如何将布尔值更新为 0