【问题标题】:checkbox selected in codeigniter在 codeigniter 中选中的复选框
【发布时间】:2015-01-21 00:35:04
【问题描述】:

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

 <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'
    );

  }

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

【问题讨论】:

    标签: codeigniter checkbox


    【解决方案1】:

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

    <?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; ?> 
    

    【讨论】:

    • 在你的这行代码中有错误
    • 得到这个错误函数名必须是字符串这行代码
    • 嘿,谢谢我修好了!我删除了这行代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多