php - PHP 中的嵌套循环和语句
问题描述
我有这段代码,我想根据使用 PHP 从数据库中获取的数字添加复选框,当单击复选框时,使用 JQuery 更新数据库中的字段,这适用于 1 个复选框,但这不适用于更多复选框,而且我的 PHP 循环也没有工作我如何添加带有循环的复选框,当用户单击任何复选框更新他自己在数据库上的字段时,任何人都可以解决我的问题?
我的 jQuery 代码:
$(document).ready(function () {
$('#mycheckbox').change(function () {
var returnVal = ("Are " + "you sure?");
if (returnVal) {
postToServer($(this).prop("checked"));
} else {
$(this).prop("checked", !$(this).is(":checked"));
}
});
function postToServer(state) {
let value = (state) ? 1 : 0;
$.ajax({
type: 'POST',
url: 'checkbox.php',
data: {'value': +value},
success: function (response) {
//handle response
}
});
}
}
和我的 PHP 代码:
$sql1="SELECT * FROM `users` ";
$result1= mysqli_query($conn,$sql1);
$row1=mysqli_fetch_assoc($result1);
$lights=$row1["lights"];
for ($i=0; $i < $lights; $i++){
if ($row["value"]=='1'){
echo "<input type=\"checkbox\" class=\"checkbox\" id=\"mycheckbox\" checked=\"checked\">";
} else {
echo "<input type=\"checkbox\" class=\"checkbox\" id=\"mycheckbox\" >";
}
}
解决方案
这应该可以解决您的循环未运行的问题,并且应该为每个用户打印出复选框
$users= mysqli_query($conn, "SELECT * FROM user");
while($row = mysqli_fetch_assoc($users)) {
if ($row["value"]=='1'){
echo '<input type="checkbox" class="checkbox" id="mycheckbox-'.$row["id"].'" checked="checked">';
}else {
echo '<input type="checkbox" class="checkbox" id="mycheckbox-'.$row["id"].'" >';
}
}
将用户的 id 添加到每个复选框 id 中,以使每个复选框都有唯一的 id
推荐阅读
- python - 有没有一种有效的方法来确定 Python 中两个日期之间每个时间段的小时数?
- c# - 如何在 ASP .Net Core 2.2 中为 ILoggingBuilder 创建配置扩展?
- regex - 使用正则表达式匹配从字符串中提取特定单词
- haskell - 为什么调用以 IO() 作为返回值的函数会导致模棱两可的类型错误?
- c - #ifdef 在结构初始化中的使用
- sms - 有没有办法使用 Qpython 发送超过 160 个字符的多部分 SMS 消息?
- laravel - Laravel 护照 Oauth2 “请求令牌”
- symfony - 如何防止不想要的教义在 symfony 4 中持续存在?
- python - 自定义训练 YOLOv3 模型后没有边界框
- go - Testify mock 正在返回该函数尚未被调用的断言