我有包含多个复选框的表单。系统功能的每个复选框。
我希望将所有系统功能列为复选框,然后选中'已选中'属性是活动功能。所以这里没问题。但我希望如果未经检查的活动功能,此功能会使其失效。如果选中了deactive功能,则会激活。
但我不知道如何区分之前选择的。
我写作代码;
function generate_menu($parent)
{
$has_childs = false;
global $activeModule;
global $actives;
global $menu_array;
foreach($menu_array as $key => $value)
{
if ($value['cat'] == $parent)
{
if ($has_childs === false)
{
$has_childs = true;
echo '<ul id="categories" style="list-style:none;">';
}
echo '<li><label><input name="module[]" type="checkbox" '.(($value['check'])?'checked':'').' value="'.$value['id'].'"> ' . $value['modulename'] .'</label>';
generate_menu($key);
echo '</li>';
}
}
if ($has_childs === true)
echo '</ul>';
}
此代码的结果
保存当前选中的内容;
$success = Array();
foreach($_POST['module'] as $key=>$val)
{
$db->where('lisansID', $_POST['licence']);
$db->where('modulID', $val);
if(!$db->has('moduleactivation'))
{
if($db->insert('moduleactivation', Array(
'lisansID' => $_POST['licence'],
'modulID' => $val,
'start' => $_POST['start'],
'end' => $_POST['end'],
'activatedate' => $_POST['adate']
)))
{
$result['relocation'] = 'asd.php';
$success[] = $val;
$result['msg'] = 'Success Process, add module of licence.';
$result['code'] = '200';
}
else
{
$error = true;
break;
}
}
else
{
$unique = true;
$uniqueR[] = $val;
}
如何检测未选中的复选框以及数据库中是否有删除?
答案 0 :(得分:0)
正如您所知,PHP只会在$_POST
中收到复选框中的值。检查未经检查的&#39;在框中,您必须遍历已知复选框列表并在$_POST
中检查该变量名称。幸运的是,您已在$menu_array
中列出了此列表:
foreach ($menu_array as $varName => $varValue)
{
if (array_key_present($varName,$_POST)===TRUE) // Has it been selected?
{
echo "{$varName} is checked".PHP_EOL;
/*
* Do your activation bit here
*/
} else
{
echo "{$varName} is unchecked".PHP_EOL
/*
* Do your deactivation bit here
*/
}
}