问题得到多个复选框数组值Codeigniter

时间:2017-02-21 13:29:52

标签: php codeigniter

面对在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; 
        }
    }
}

2 个答案:

答案 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 开头的对象都是一个复选框,其余的表示他们选择了哪个产品。