比较列字段中的值与列行中的值,并打印为选中和未选中复选框

马林·内迪亚(Marin Nedea)

我有一个带有2个表的简单数据库:

1. active_services            2. devices
------------------           ------------------------------
id   |  service                id | active_services_value
------------------           ------------------------------
1    | AD                      1  |  AD,DNS,DHCP
2    | FTP                     2  |  FTP,SMB
3    | DNS                     3  |  FTP
4    | DHCP                    4  |
5    | SMB                     5  |  AD Backup
6    | AD Backup

我将active_services中的service列的值用作表单的复选框,该表单会将检查后的值发布到表设备的active_service_values列。我的代码如下:

<?php

if($active_services_value != ""){   

// Need to generate a list of checkboxes from active_services but
// for each value in the active_services_field coresponding
// to the searched id (e.g for id 1, value1 = AD, value2 = DNS, 
// value3 = DHCP ) set the checkboxes as checked            


} else {  
// display the service in active_services as checkboxes

$q = "SELECT * from active_services";
$r = mysqli_query($dbc, $q);            
    while($list = mysqli_fetch_assoc($r)){

    ?>              

<div class="col-xs-4"><input  type="checkbox" name="checkboxvar[]" value="<?php echo $list['service']; ?>"><?php echo $list['service'];?>
</div>
<?php   }   } ?> 
</div>

?>

我的问题是:

如何显示“已选中”复选框,使用户可以取消选中某些复选框,同时还显示其余未选中的复选框,从而使用户可以检查新选项?

预先感谢大家的帮助。

提多

您可以通过将checked属性添加到输入字段来将复选框标记为“已选中” 因此,如果您从数据库中检索选定项目的列表,则可以使用这些项目来确定是否应将选中的属性添加到输入字段。

它将变成这样:

<?php
$stmt = $dbc->prepare("SELECT active_services_value FROM devices WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($serviceList);
$stmt->fetch();

//transform the list of services into an array
$services = explode($serviceList, ",");

$q = "SELECT * from active_services";
$r = mysqli_query($dbc, $q);            
while($list = mysqli_fetch_assoc($r)){

?>              

<div class="col-xs-4">
    <input type="checkbox" name="checkboxvar[]"
           value="<?php echo $list['service'];?>"
           <?php if (in_array($list['service'], $services) { echo "checked"; } ?>>
    <?php echo $list['service'];?>
</div>
<?php   }   } ?> 
</div>

对于您的问题,我还有一些其他需要改进的地方:

  • 正如其他人在评论中已经提到的那样,您应该对表进行规范化(即,不要将所有活动的服务放在一列中,而应使用单独的表来包含device,service对)
  • 您可以更好地引用active_services表中服务的ID并将其设置为外键,而不是使用devices表中的服务名称这将提高性能并保证表中的一致性(即,如果设置正确,将不可能在devices表中使用不存在的服务)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取已选中和未选中的复选框值

来自分类Dev

通过选中和取消选中复选框来从数组中添加和删除值

来自分类Dev

选中复选框,如果MYSQL列值为true

来自分类Dev

获取PHP中未选中的复选框值

来自分类Dev

发布表单时如何获取复选框元素中未选中复选框的值?

来自分类Dev

如何获取选中和未选中复选框数组的所有值并将其保存到PHP中的数据库

来自分类Dev

值为true时未选中MVC复选框

来自分类Dev

如果未选中,则获取复选框值为零

来自分类Dev

获取未选中复选框的值

来自分类Dev

未选中datagridview复选框列中的最后检查的行

来自分类Dev

yii2 formwizard复选框字段值设置为1,即使未选中

来自分类Dev

使未选中的HTML复选框提交已选中的值

来自分类Dev

显示基于数据库值的已选中和未选中复选框数量的最佳方法

来自分类Dev

未选中Jqgrid中的复选框

来自分类Dev

获取父类中隐藏字段的值和复选框选中的值

来自分类Dev

如何根据角度8中的API值在循环内设置Mat复选框的值(选中/未选中)

来自分类Dev

单击复选框,将选中的值放入文本框,然后从文本框中删除未选中的值

来自分类Dev

在表单提交的数组中获取选中的复选框值

来自分类Dev

如何在Angularjs中获取选中的复选框值?

来自分类Dev

如何获取Javascript中仅选中的复选框的值?

来自分类Dev

每个值都选中了 var 中的复选框

来自分类Dev

选中和取消选中复选框

来自分类Dev

选中和取消选中复选框

来自分类Dev

选中和取消选中复选框

来自分类Dev

在CSS中,如何将复选框或单选按钮设置为按下状态(已选中和未选中)以外的样式?

来自分类Dev

如何根据文本区域中的值在jquery中选中和取消选中复选框

来自分类Dev

如何在laravel中选中和不选中复选框显示2个不同的值?

来自分类Dev

如何根据文本区域中的值在jquery中选中和取消选中复选框

来自分类Dev

如何返回在 ANGULAR Material 6 中选中和取消选中的复选框的布尔值

Related 相关文章

  1. 1

    获取已选中和未选中的复选框值

  2. 2

    通过选中和取消选中复选框来从数组中添加和删除值

  3. 3

    选中复选框,如果MYSQL列值为true

  4. 4

    获取PHP中未选中的复选框值

  5. 5

    发布表单时如何获取复选框元素中未选中复选框的值?

  6. 6

    如何获取选中和未选中复选框数组的所有值并将其保存到PHP中的数据库

  7. 7

    值为true时未选中MVC复选框

  8. 8

    如果未选中,则获取复选框值为零

  9. 9

    获取未选中复选框的值

  10. 10

    未选中datagridview复选框列中的最后检查的行

  11. 11

    yii2 formwizard复选框字段值设置为1,即使未选中

  12. 12

    使未选中的HTML复选框提交已选中的值

  13. 13

    显示基于数据库值的已选中和未选中复选框数量的最佳方法

  14. 14

    未选中Jqgrid中的复选框

  15. 15

    获取父类中隐藏字段的值和复选框选中的值

  16. 16

    如何根据角度8中的API值在循环内设置Mat复选框的值(选中/未选中)

  17. 17

    单击复选框,将选中的值放入文本框,然后从文本框中删除未选中的值

  18. 18

    在表单提交的数组中获取选中的复选框值

  19. 19

    如何在Angularjs中获取选中的复选框值?

  20. 20

    如何获取Javascript中仅选中的复选框的值?

  21. 21

    每个值都选中了 var 中的复选框

  22. 22

    选中和取消选中复选框

  23. 23

    选中和取消选中复选框

  24. 24

    选中和取消选中复选框

  25. 25

    在CSS中,如何将复选框或单选按钮设置为按下状态(已选中和未选中)以外的样式?

  26. 26

    如何根据文本区域中的值在jquery中选中和取消选中复选框

  27. 27

    如何在laravel中选中和不选中复选框显示2个不同的值?

  28. 28

    如何根据文本区域中的值在jquery中选中和取消选中复选框

  29. 29

    如何返回在 ANGULAR Material 6 中选中和取消选中的复选框的布尔值

热门标签

归档