使用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