【问题标题】:CodeIgniter Marking checkboxes from databaseCodeIgniter 标记数据库中的复选框
【发布时间】:2017-04-30 18:45:08
【问题描述】:

我想重新填充包含来自数据库中值的复选框的页面。目前,它们被存储为一个字符串,在处理例如 3、4、5 时会被拆分为一个数组。

我可以用我的数据库中的数据选中复选框,但它旁边会创建另一个空复选框。如何只选中包含数据库数据的框,而旁边没有重复的空框?

<tbody>               
       <?php 
           if(!empty($datatable)){
              foreach ($datatable as $data){
        ?>
                    <tr>
                        <td>
                            <?php foreach ($event_contacts as $checked){?>
                                <?php if($checked==$data->id){?>
                                    <input type="checkbox" name="id[]" id="id" checked value="<?php echo $data->id; ?>"/>
                            <?php }else{ ?>
                                    <input type="checkbox" name="id[]" id="id" value="<?php echo $data->id; ?>"/>
                            <?php }}?>
                        </td>
                        <td><?php echo $data->first_name." ".$data->last_name; ?></td>
                        <td><?php echo $data->email; ?></td>
                        <td><?php echo $data->phone_number; ?></td>
                        <td><?php echo $data->address;?></td>
                    </tr>
                <?php 
                    }
                }
                ?>
            </tbody>

希望有人可以提供帮助。谢谢

编辑:为清楚起见添加了照片

【问题讨论】:

  • 你怎么知道它被复制了?假设您的表中有 5 行,其中只有两行带有选中标签,您的 foreach 循环将继续创建您的复选框,直到您删除 else 语句
  • 如果我删除 else 那么只会出现选中的复选框。
  • 那么你怎么知道它被复制了?检查您的元素检查器并查看
  • 对不起,它不是重复的。它是创建的未经检查的版本。
  • 嗯?但是我还没有解决问题?如果我删除else,未选中的项目将不会出现。

标签: php codeigniter checkbox


【解决方案1】:

只需像这样更改您的代码

 <tbody>               
   <?php 
       if(!empty($datatable)){
          foreach ($datatable as $data){
    ?>
                <tr>
                    <td>

                        <?php

                        if (in_array($data->id, $event_contacts)) {
                            ?>
                                    <input type="checkbox" name="id[]" id="id" checked value="<?php echo $data->id; ?>"/>
                            <?php
                        }else{

                          ?>
                                   <input type="checkbox" name="id[]" id="id" value="<?php echo $data->id; ?>"/>

                          <?php
                        }
                        ?>

                    </td>
                    <td><?php echo $data->first_name." ".$data->last_name; ?></td>
                    <td><?php echo $data->email; ?></td>
                    <td><?php echo $data->phone_number; ?></td>
                    <td><?php echo $data->address;?></td>
                </tr>
            <?php 
                }
            }
            ?>
        </tbody>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多