面对在Codeignite中获取多个复选框数组值的问题
<div class="form-actions">
<form action="candidates/posted" name="posted" method="post">
<button class="btn btn-primary" type="submit" value="submit" name="submit">Action</button>
</div>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="header">#</th>
<th class="checkbox">Status</th>
<th class="yellow header headerSortDown">Roll No</th>
<th class="green header">Class Name</th>
<th class="red header">Full Name</th>
<th class="red header">Father Name</th>
<th class="red header">Sections</th>
<th class="red header">Actions</th>
</tr>
</thead>
<tbody>
<?php
foreach($candidates as $row)
{
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
//echo '<td>' .'</td>';
echo '<td><input type="checkbox" class ="chkCheckBoxId" value='.$row['id'].' name="chk_id[]"/></td>';
echo '<td>'.$row['roll_no'].'</td>';
echo '<td>'.$row['class_name'].'</td>';
echo '<td>'.$row['full_name'].'</td>';
echo '<td>'.$row['father_name'].'</td>';
echo '<td>'.$row['section_name'].'</td>';
echo '<td class="crud-actions">
<a href="'.site_url("admin").'/candidates/update/'.$row['id'].'" class="btn btn-info">view & edit</a>
<a href="'.site_url("admin").'/candidates/delete/'.$row['id'].'" class="btn btn-danger">delete</a>
</td>';
echo '</tr>';
}
?>
</form>
控制器:
public function posted()
{
if(!empty($_POST['chk_id'])) {
foreach($_POST['chk_id'] as $check) {
echo $check;
}
}
}
答案 0 :(得分:0)
在foreach
循环中尝试这样做。使用quotes
时存在冲突。
$id = $row['id'];
echo '<td><input type="checkbox" class ="chkCheckBoxId" value="'.$id.'" name="chk_id[]"/></td>';
在codeigniter
中,您可以使用$this->input->post()
来获取发布的值。以下是更好的方法..
public function posted()
{
if(!empty($this->input->post('chk_id')) {
foreach($this->input->post('chk_id') as $check) {
echo $check;
}
}
}
答案 1 :(得分:0)
对此纠正我,但我相信未经检查的复选框不会被发送回服务器。我一直检查是否通过查看它是否在$ _POST []数组中来检查复选框(我倾向于使用method =“post”)。
当我需要一系列复选框时,我实际上给了他们自己的名字。例如,如果我列出了一组供用户选择的产品,我将给每个复选框命名一个以“chk_”开头的名称,然后附加产品的ID。这样,在处理数据期间,我所要做的就是循环遍历$ POST []数组,每个以chk 开头的对象都是一个复选框,其余的表示他们选择了哪个产品。