CONTEXT
我正在开发一个配置文件创建表单,其中包含一个复选框,它将逗号分隔的数组内插并插入到MySQL表中($ profile_table)。
<input type="checkbox" name="check_group[]" value="Foo" /> Foo<br />
<input type="checkbox" name="check_group[]" value="Bar" /> Bar<br />
<input type="checkbox" name="check_group[]" value="Baz" /> Baz<br />
$insert_array = implode(", ", $_POST['check_group']);
如果选中所有复选框,则数组如下所示:&#34; Foo,Bar,Baz&#34;
$insert_profile_query = "INSERT INTO profile_table
(check_group_field)VALUES ('".$insert_array."')";
$profile_query_qs = db_query($insert_profile_query);
上面的代码可以使用。
我需要一个编辑个人资料页面,其中使用上面创建的数组预先填充复选框组并插入MySQL $ profile_table。
使用&#34; Foo&#34;以复选框为例,我相信答案使用的是in_array条件,并且接近:
<input type="checkbox" name="check_group[]" value="Foo"
<? $my_array = array(explode(", ", $profile_table['check_group_field']));
if (in_array("Foo", $my_array)) {echo 'checked="checked"';}?> /> Foo<br />
问题
具体来说,从MySQL $ profile_table.check_group_field获取数组的最佳函数是什么,所以我可以在in_array条件中使用它作为$ my_array来预先填充复选框组中的复选框?我需要先爆炸阵列吗?
示例资源
以下是我引用的众多资源的示例;但是,我没有找到我需要解决的具体问题:
http://us1.php.net/in_array http://www.sitepoint.com/forums/showthread.php?577188-Retrieving-A-Checkbox-Array-from-MySql Populate checkbox from array
提前致谢!
答案 0 :(得分:2)
$x=mysql_query("SELECT * FROM DB");
while($y=mysql_fetch_array){
echo "<input type='checkbox' name=".$y." value='Foo' >";
}
答案 1 :(得分:0)
我会将复选框的值存储在一个数组中并运行foreach中的所有选项,并以与您使用的方式类似的方式检查值是否在数组中。
$options=array('Foo', 'Bar', 'Baz');
$my_array = array(explode(", ", $profile_table['check_group_field']));
foreach($options as $option){
echo '<input type="checkbox" name="check_group[]" value="'.$option.'" ';
if(in_array($option, $my_array)){
echo 'checked="checked"';
}
echo '/>';
}
答案 2 :(得分:0)
感谢您确认我在球场!我玩了更多功能,并通过演绎找到了我的错误。
$ my_array = array(explode(“,”,$ profile_table ['check_group_field']));是错的。
爆炸创建一个数组,所以数组(爆炸......是多余的。
我认为声明应该是:
$ my_array =(explode(“,”,$ profile_table ['check_group_field']));