【问题标题】:How to check for unchecked comboBoxes in an array?如何检查数组中未选中的组合框?
【发布时间】:2016-11-03 02:26:27
【问题描述】:

我有以下表格,我需要检查未选中的框

<input type="checkbox" name="permission[]" value="user.create">Create</input>
<input type="checkbox" name="permission[]" value="user.update">Update</input>
<input type="checkbox" name="permission[]" value="user.delete">Delete</input>
<input type="checkbox" name="permission[]" value="user.read">Read</input>
<input type="submit" name="submit" value="Submit"/>

它现在的方式它给了我一个像permission['user.create'.'user.read'.'user.delete'] 这样的数组。 我需要的是另一个数组,例如 unSelected['user.update']

更新:我不能使用隐藏字段,因为所有值都应该存储在数组中。

【问题讨论】:

  • 不,只是纯php
  • 我正在使用 laravel 开发一个权限系统,但是客户想要它,以便他可以自定义角色拥有的权限,并且他希望能够在组合框中选择它们,这样我就可以提供新的权限使用上面的表格,但我无法删除它们,因为我不知道如何搜索未选中的组合框
  • 更好地显示数组使用情况:stackoverflow.com/questions/33292526/…
  • 你可以有一个预定义的主数组,其中包含所有允许的值,当你提交表单时,你有那些被选中的,所以现在你可以使用 array_diff 来隔离未选中的。

标签: php arrays checkbox


【解决方案1】:

你可以有一个预定义的主数组,其中包含所有允许的值,当你提交表单时,你有那些被选中的,所以现在你可以使用 array_diff 来隔离未选中的那些。

<?php
$a = array('a','b','c','d','e'); //main array

$b = array('a','c','e'); //submitted array

$c = array_diff($a, $b);

print_r($c); //will give Array ( [1] => b [3] => d )

?>

【讨论】:

    【解决方案2】:

    试试这个:

    $unSelected= array_diff(array('user.create', 'user.update', 'user.delete', 'user.read'), $permission);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 2016-12-06
      • 1970-01-01
      • 2011-01-28
      • 2013-08-02
      • 2018-08-08
      • 2014-05-19
      • 2021-11-06
      相关资源
      最近更新 更多