在codeigniter中选中的复选框

时间:2014-11-23 04:09:06

标签: codeigniter checkbox

嗨,我有这个选择复选框,工作日是复选框sunday monday tuesday wednesday thursday friday saturday。用户可以根据需要选择多个。我将数据保存到我的数据库,例如用户选择星期一星期一星期二,我将其保存到我的字段1-2-3只有一个字段名称available_days_per_week。现在我的问题是,当我查询数据并显示到我的编辑页面时,我希望只检查1-2-3。发生的事情是数据增加了一倍。我的代码工作但显示为double。下面是我的代码

 <tr>
                            <th>Available days per week</th>
                            <td>
                            <?php $daysPerWeeks = $query->available_days_per_week; ?>
                            <?php $daysPerWeeks1 = explode("-", $daysPerWeeks); ?>
                            <?php foreach($daysPerWeeks1 as $value): ?>
                              <?php foreach($daysPerWeekCheckboxes as $key=>$week): ?>
                                  <input type="checkbox" name="available_days_week" value="<?php echo $key ?>" <?php echo($value == $key) ? 'checked="checked"' : ''?> ><?php echo $week; ?><br>
                                <?php endforeach; ?>
                            <?php endforeach; ?>      
                            </td>
                        </tr>

会像这样显示在我的页面中

<tr>
                            <th>Available days per week</th>
                            <td>
                                                                                                                                                    <input type="checkbox" name="available_days_week" value="1" checked="checked" >Sunday<br>
                                                                  <input type="checkbox" name="available_days_week" value="2"  >Monday<br>
                                                                  <input type="checkbox" name="available_days_week" value="3"  >Tuesday<br>
                                                                  <input type="checkbox" name="available_days_week" value="4"  >Wendesday<br>
                                                                  <input type="checkbox" name="available_days_week" value="5"  >Thursday<br>
                                                                  <input type="checkbox" name="available_days_week" value="6"  >Friday<br>
                                                                  <input type="checkbox" name="available_days_week" value="7"  >Saturday<br>
                                                                                                                            <input type="checkbox" name="available_days_week" value="1"  >Sunday<br>
                                                                  <input type="checkbox" name="available_days_week" value="2" checked="checked" >Monday<br>
                                                                  <input type="checkbox" name="available_days_week" value="3"  >Tuesday<br>
                                                                  <input type="checkbox" name="available_days_week" value="4"  >Wendesday<br>
                                                                  <input type="checkbox" name="available_days_week" value="5"  >Thursday<br>
                                                                  <input type="checkbox" name="available_days_week" value="6"  >Friday<br>
                                                                  <input type="checkbox" name="available_days_week" value="7"  >Saturday<br>
                                                                                                                            <input type="checkbox" name="available_days_week" value="1"  >Sunday<br>
                                                                  <input type="checkbox" name="available_days_week" value="2"  >Monday<br>
                                                                  <input type="checkbox" name="available_days_week" value="3" checked="checked" >Tuesday<br>
                                                                  <input type="checkbox" name="available_days_week" value="4"  >Wendesday<br>
                                                                  <input type="checkbox" name="available_days_week" value="5"  >Thursday<br>
                                                                  <input type="checkbox" name="available_days_week" value="6"  >Friday<br>
                                                                  <input type="checkbox" name="available_days_week" value="7"  >Saturday<br>

                            </td>
                        </tr>

你已经注意到它会加倍 继续我的静态代码将返回几周

//return days per week checkbox
  public static function getDaysPerWeekCheckbox(){
    return array(
      1 =>'Sunday',
      2 =>'Monday',
      3 =>'Tuesday',
      4 =>'Wendesday',
      5 =>'Thursday',
      6 =>'Friday',
      7 =>'Saturday'
    );

  }

如何避免在编辑页面中显示时不会加倍的数据? 有人能帮助我解决这个问题吗?。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你正在不必要地循环。试试这个:

<?php $days = getDaysPerWeekCheckbox(); ?>
<?php foreach($days as $index => $day_name): ?>
    <input type="checkbox" name="available_days_week" value="<?php echo $index ?>" <?php echo(in_array($index, $daysPerWeeks1)) ? 'checked="checked"' : ''?> ><?php echo $day_name; ?><br>
<?php endforeach; ?>