我正在处理一个用户表单,其中包含一些类别,其填写为我的表单中的复选框
<td><input type="checkbox" name="category[]" value="1"> CCTV </td>
<td><input type="checkbox" name="category[]" value="2"> Access Control </td>
<td><input type="checkbox" name="category[]"value="3"> Fire Alarm </td>
<td><input type="checkbox" name="category[]" value="4"> Intrusion Alarm System </td>
我将这样的类别存储为db中的逗号分隔字符串
$category=implode(',',$_POST['category']);
此错误显示在view my category
页面中,在此页面中,我想显示所有类别,其中用户选择的类别已选中(如果用户为CCTV
类别,则选择它应该显示为标记为),
但我不知道如何实现这个?
这是我的代码,它显示所有没有用户选中值的类别
<?php
//fetch user checked category from db and convert to array.
$user_cat=explode(',',$value['category']); //eg;array(5,6,8)
//all categorys value
$all_cat_value=array('1','2','3','4','5','6','7','8');
$all_cat_txt=array('CCTV','Acess controle'....,'Fire alaram');
//populates all category with checked value
for each($all_cat_txt as $key=>$val){
echo '<input type="checkbox" value="'.$[$all_cat_value][$key].'">'.$val;
}
注意:$all_cat_value
和$all_cat_txt
的长度相同
答案 0 :(得分:0)
使用in_array()
并查找数组中是否存在检查值。如果找到,则在复选框中添加checked
属性。
//fetch user checked category from db and convert to array.
$user_cat=explode(',',$value['category']); //eg;array(5,6,8)
//all categorys value
$all_cat_value=array('1','2','3','4','5','6','7','8');
$all_cat_txt=array('CCTV','Acess controle',....,'Fire alaram');
//populates all category with checked value
foreach($all_cat_txt as $key=>$val){
$checked = "";
if(in_array($all_cat_value[$key], $user_cat))
{
$checked = "checked";
}
echo '<input type="checkbox" value="'.$all_cat_value[$key].'" '.$checked.'>'.$val;
}