在codeigniter中的数据库中设置值时如何将复选框显示为选中状态
Posted
技术标签:
【中文标题】在codeigniter中的数据库中设置值时如何将复选框显示为选中状态【英文标题】:How to show checkboxes as checked when values are set in the database in codeigniter 【发布时间】:2015-10-07 00:54:03 【问题描述】:我使用 foreach 来显示来自数据库的数据。
这是为 Plan_data 准备的
<?php foreach ($veddingPlanData as $row) ?>
<input box with value containing "echo row->value_name" >
<?php ?>
这是作为复选框的任务数据[这里我想显示将任务分配给 plan_id 的复选框列表,它们显示为厚脸皮复选框和未选中状态的剩余列表)
<?php foreach ($veddingPlanTaskMappingData as $row) ?>
<input type="checkbox" name="task_id[]" value="<?php echo $row->task_id ;?>" checked><?php echo $row->task_name?><br>
<?php ?>
这里我在复选框中显示了整个任务列表。
<?php foreach ($allVedingTasks as $row) ?>
<input type="checkbox" name="task_id" value="<?php echo $row->task_id ;?>" ><?php echo $row->task_name?><br>
<?php ?>
我想用选定的一些任务作为映射的 plan_id 来搜索 task_name 列表。
【问题讨论】:
你从 7 月 14 日开始从事这个项目。我检查了你最后 4 个问题都来自这个项目。 是的先生...我的薪水取决于这个项目.. :) @Bugfixer @ankitsuthar 为什么没有在答案中给出反馈???天气是答案是否有效??? @ankitsuthar 听起来你一直是帮助吸血鬼:meta.***.com/questions/258206/what-is-a-help-vampire 【参考方案1】:首先,我们将获取所有类别,而不是获取 ID 并使用它来显示数据库中的选中列表。首先,我们根据 Id 选择表值,然后获取记录。我们在数据库列中使用逗号,如 1、2、3、5、9 中的数据。然后我们将它保存在数组中,最后我们只是将该数组显示到页面上。
$table="select * from categorytable";
$this->result=mysqli_query($this->con,$table);
$this->count=mysqli_num_rows($this->result);
if($this->count < 1)
return "<div class='form-group'>".$messages->getResponseMessage("No category is added.", "Warning")."</div>";
else
$alert='';
$select="select Category from table where Id='$id'";
$result= mysqli_query($this->con, $select);
$amrow= mysqli_fetch_array($result);
$getAminity=$amrow["Category"];
$getArray= explode(",",$getAminity);
while($row= mysqli_fetch_array($this->result))
if(in_array($row[Id],$getArray))
$alert.="<div class=col-md-2><label class='checkbox-inline'><input type=checkbox id='catval[]' checked name='catval[]' value='$row[Id]'/> $row[Name]</label></div>";
else
$alert.="<div class=col-md-2><label class='checkbox-inline'><input type=checkbox id='catval[]' name='catval[]' value='$row[Id]'/> $row[Name]</label></div>";
【讨论】:
【参考方案2】:终于找到了
<?php
$arrSelVedTask = array();
foreach ($veddingPlanTaskMappingData as $row)
$arrSelVedTask[$row->task_id] = '';
?>
<div class="form-group">
<lable for="task_id" class="control-label col-sm-12">Plan Task LIST:</lable>
<div class="col-sm-10">
<div class="checkbox" style="margin-left:40px;">
<?php foreach ($allVedingTasks as $row)
if(isset($arrSelVedTask[$row->task_id]))
?><input type="checkbox" name="task_id[]" value="<?php echo $row->task_id ;?>" checked ><?php echo $row->task_name; ?><br><?php
else
?><input type="checkbox" name="task_id[]" value="<?php echo $row->task_id ;?>" ><?php echo $row->task_name; ?><br><?php
?>
【讨论】:
【参考方案3】:首先在您的模型中获取数据库中复选框的值,然后在控制器中调用该函数并将该值传递给查看页面。然后对每个复选框项目使用 if 语句来检查值是否相同。如果条件匹配,则写echo "checked";
command。
【讨论】:
【参考方案4】:使用set_checkbox的CI
<input type="checkbox" name="task_id" value="<?php echo $row->task_id ;?>" <?php echo set_checkbox('task_id', $row->task_id); ?> ><?php echo $row->task_name?>
【讨论】:
对不起先生.. 我试过这个,但我选中了所有复选框。 @Saty【参考方案5】:只需添加一个检查:
<?php
foreach ($veddingPlanTaskMappingData as $row)
$checked = ($row->task_id == YOUR_CONDITION) ? 'checked="checked"' : '';
?>
<input type="checkbox" name="task_id[]" value="<?php echo $row->task_id ;?>" <?php echo $checked?>><?php echo $row->task_name?><br>
<?php ?>
【讨论】:
以上是关于在codeigniter中的数据库中设置值时如何将复选框显示为选中状态的主要内容,如果未能解决你的问题,请参考以下文章