2014-11-23 100 views
0

嗨,我有这个选择复选框,这是周一至周五的复选框是sunday monday tuesday wednesday thursday friday saturday。用户可以根据自己的需要进行选择。我将数据保存到我的数据库,例如用户选择星期日星期一星期二,我将它作为1-2-3保存到我的字段中,只有一个字段名称available_days_per_week。现在我的问题是,当我查询数据并显示到我的编辑页面时,我只希望只检查1-2-3。数据增加了两倍。我的代码工作,但显示为双。我的继承人下面在codeigniter中选择的复选框

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

    } 

如何避免在编辑页面显示时不会加倍的数据? 有人可以帮我想出这件事吗?任何帮助,非常感激。

回答

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

确定生病试试这个代码 – 2014-11-23 04:34:38

+0

在这行代码有错误在你 ?”< ?php echo(in_array($ index,$ daysPerWeeks1)?'checked =“checked”':''?>><?php echo $ day_name;?>
2014-11-23 04:35:17

+0

得到这个错误 函数名必须是字符串 这一行代码 <?php $ days = $ daysPerWeekCheckboxes();?> – 2014-11-23 04:40:01