基于数据库数组PHP的自动复选框
在我页面的“用户设置”选项卡中,我希望用户确定特定用户的帖子类型。表格如下:基于数据库数组PHP的自动复选框,php,html,mysqli,Php,Html,Mysqli,在我页面的“用户设置”选项卡中,我希望用户确定特定用户的帖子类型。表格如下: <form method="post" action="" name="permitted_categories"> Select or deselect which types of Posts that you would like to see. <p> <?
<form method="post" action="" name="permitted_categories">
Select or deselect which types of Posts that you would like to see.
<p>
<?
$cat_query = mysqli_query($con, "SELECT permitcat FROM permitted WHERE username='$userLoggedIn' AND friendname='$username'")
?>
<label>
<input type="checkbox" name="categories[]" value="Life" id="Life" <? echo $checked;?>>
Life</label>
<br>
<label>
<input type="checkbox" name="categories[]" value="Politics" id="Politics" <? echo $checked;?>>
Politics</label>
<br>
<label>
<input type="checkbox" name="categories[]" value="Entertainment" id="Entertainment" <? echo $checked;?>>
Entertainment</label>
<br>
<label>
<input type="checkbox" name="categories[]" value="Food" id="Food" <? echo $checked;?>>
Food</label>
<br>
<label>
<input type="checkbox" name="categories[]" value="BusFin" id="BusFin" <? echo $checked;?>>
Business/Financial</label>
<br>
<label>
<input type="checkbox" name="categories[]" value="Fitness" id="Fitness" <? echo $checked;?>>
Fitness/Health</label>
<br>
<input type="submit" name="update_categories" id="update_categories">
<?
if(isset($_POST['update_categories'])) {
$permitted_categories = $_POST['categories'];
echo "You will only see the following categories from ". $profile_user_obj->getFirstAndLastName() .": ";
foreach ($permitted_categories as $permcat){
echo $permcat .", ";
}
$values = implode(", ", $permitted_categories);
$permit_query = mysqli_query($con, "INSERT INTO permitted (id, username, friendname, permitcat) VALUES('','$userLoggedIn', '$username', '$values')");
} ?>
</p>
</form>
选择或取消选择要查看的帖子类型。
这很简单
HTML文档:
<input type="checkbox" name="Name" value="Value" id="Id" checked>
但这将选中所有复选框,您需要选中以下内容:
<?php $checked = 'checked'; ?>
<input type="checkbox" name="categories[]" value="BusFin" id="BusFin" <?php echo if($something == $otherThing) echo $checked;?> >
是什么在回答这个问题$cat_query=mysqli_query($con,“从允许的位置选择permitcat,其中username='$userLoggedIn'和friendname='$username'))。根据响应,您必须将响应数组与字段进行比较,然后选择“选中”或“不选中”。我最初创建了一个IF语句,将复选框数组与数据库中的数组进行比较,然后发送更新,这不起作用,而是在数据库中创建了两个条目,其中on是正确的,而另一个条目没有在permitcat列中插入任何内容。关于检查“yes”
,您可以使用PHP的filter\u var
来检查常见的检查值:filter\u var
($assoc\u array['life',filter\u VALIDATE\u BOOLEAN)`。我使用了if(在_数组(“food”,$array)){echo“checked”}
但是我的$array正在从数据库中提取。我在页面顶部回显了数组信息,它正在从数据库获取信息,但在_array
中似乎没有发挥应有的作用。这些都是示例,而且由于您的数据库可能没有与我向您展示的数组相同的结构:这几乎没有发挥作用的机会。如果您发布sql请求的输出,我们可以为您提供一个工作示例。这对我最初的问题没有帮助。
$checked = 'checked';
<?php $checked = 'checked'; ?>
<input type="checkbox" name="categories[]" value="BusFin" id="BusFin" <?php echo if($something == $otherThing) echo $checked;?> >
<input type="checkbox" name="categories[]" value="Life" id="Life" <?php if($something) { echo "checked"; }?>>
$assoc_array = [
"life" => "yes",
"food" => "no",
];
if($assoc_array['life'] == "yes"){ echo "checked"; }
$array = [
"life",
"food"
];
if (in_array("food", $array)) {
echo "checked";
}
$assoc_array_bool = [
"life" => "whatever",
"food" => "whatever"
];
if($assoc_array_bool['life']){ echo "checked"; }
// would not check the checkbox
// if you replaced $assoc_array_bool['life'] with $assoc_array_bool['sport']